我有一个 WPF 应用程序需要一段时间才能关闭,所以我想添加一个“请稍候”对话框,以便在主窗体关闭时显示。但是,当我将“formmessage.show”添加到我的主窗体的关闭事件处理程序时,该窗体显示但不是“请稍候”文本,我得到的只是一个白色矩形。这似乎只有在从关闭处理程序调用此代码时才会发生。它在其他处理程序中运行良好(单击表单或最大化)。谁能帮忙?这是我的简化代码:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
Form1 f = new Form1();
f.Show();
System.Threading.Thread.Sleep(3000);
}
}
Form1 上有一个标签,上面写着“请稍候”。
最佳答案
试用:
Application.Current.Dispatcher.Invoke(
DispatcherPriority.Normal,
new Action(() =>
{
Form1 f = new Form1();
f.Show();
System.Threading.Thread.Sleep(3000);
}));
顺便说一句,您可以删除 Thread.Sleep()
因为 Application Shutdown mode 的默认值是OnLastWindowClose因此应用程序将处于事件状态,直到用户明确关闭事件窗口,可以通过在 App.xaml
中将 Application.ShutdownMode
切换为 OnMainWindowClose
来更改此行为> 文件)
关于c# - 如何在父表单关闭时显示状态对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7548946/