【发布时间】:2011-07-27 14:54:17
【问题描述】:
当用户单击 x 关闭应用程序窗口时,我想弹出一条消息“正在关机,请稍候”并将其余窗口控件设置为灰色或禁用。
这是因为我的应用程序关闭和清理需要一点时间,大约 20 秒。
但是,Window_Closing 事件处理程序中的 wpf 命令似乎从来没有做任何事情。我有一个透明的灰色填充边框,它覆盖了窗口控件,我想将可见性从折叠更改为可见。代码被调用,但没有任何变化。
就好像请求在排队但没有被调用,因为窗口正在关闭。
有没有办法清除这个请求?
编辑:
试试这个代码:
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
_DisableBorder.Visibility = System.Windows.Visibility.Visible;
Thread.Sleep(2000);
}
应用程序将在 2 秒后关闭,但不会显示边框。如果添加 e.Cancel = true,则边框将在 2 秒后显示。
【问题讨论】:
-
那没有任何区别。
-
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) { _DisableBorder.Visibility = System.Windows.Visibility.Visible;线程.睡眠(2000);这段代码什么都不会发生。如果你输入 e.Cancel = true ,边框会在 2 秒后可见。
-
UI 不会在内在 UI 线程上运行的方法中更新。
-
即使我使用调度程序运行线路也没有任何反应。