为什么关闭我的初始屏幕导致我的主窗口永远不会显示

本文关键字:我的 窗口 永远 显示 屏幕 为什么 | 更新日期: 2023-09-27 18:33:43

我在我的App.xaml.cs中覆盖了OnStartup方法。 但是,一旦我添加了初始屏幕关闭,我的主窗口就永远不会显示。 调试器到达主节点。Show() 行,但在完成执行后,应用程序关闭。 有什么想法吗?


protected override void OnStartup(StartupEventArgs e)
{
   base.OnStartup(e);
   SplashWindow splash = new SplashWindow();
   splash.Show();
   System.Threading.Thread.Sleep(5000);
   splash.Close();
   MainWindow main = new MainWindow();
   main.Show();
}

为什么关闭我的初始屏幕导致我的主窗口永远不会显示

因为ShutdownMode的默认值是 OnLastWindowClose ,所以当您关闭初始屏幕时,程序将退出。可以通过在调用 base 后添加以下代码来更改此设置。启动时

this.ShutdownMode = ShutdownMode.OnMainWindowClose;

如果这仍然不起作用,将其设置为 OnExplicitShutdown 可能会起作用。

Show 方法打开Window而不等待它关闭。

应使用应用的 ShowDialog 方法停止执行,直到应用关闭。

另一种解决方案是先加载主窗口,但将其可见性属性设置为隐藏。 然后从那里启动初始屏幕,并在关闭后将可见性更改回可见。