c# - 更改 Window_Closing 上的 Wpf 窗口外观

标签 c# wpf window

当用户单击 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 秒后显示。

最佳答案

你应该耍点小伎俩。 在“关闭”处理程序中,您应该取消关闭,然后显示弹出窗口(作为无模式窗口),然后禁用主窗口上的所有内容。该过程结束后,您可以通过编程方式关闭弹出窗口和主窗口。

我不会在关闭处理程序中执行任何耗时的操作。

希望有帮助。 干杯

关于c# - 更改 Window_Closing 上的 Wpf 窗口外观,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6846460/

相关文章:

java - 修改从 Desktop.Browser 打开的窗口的位置和位置

objective-c - 单击窗口禁用应用程序激活

c# - 如何获取收件箱文件夹实例?

c# - 有没有尝试 Convert.ToInt32 ...避免异常

c# - 有条件地设置滚动条按钮大小

c# - .NET 中的树集合

javascript - 窗口.打开 : is it possible open a new window with modify its DOM

c# - 使用 Linq to SQL 的多线程

c# - 如何将后面的字符替换为空格并写入下一行?

wpf - 尝试以编程方式滚动滚动查看器