为什么关闭我的启动画面会导致主窗口永不显示?

bsh*_*52s 2 c# wpf splash-screen startup

我在App.xaml.cs中覆盖了OnStartup方法,如下所示.但是,一旦我关闭了启动画面,我的主窗口就永远不会显示.调试器到达main.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();
}
Run Code Online (Sandbox Code Playgroud)

shr*_*iek 5

因为默认值ShutdownModeOnLastWindowClose,所以当您关闭启动画面时,程序退出.您可以在调用base.OnStartup后添加以下代码来更改此设置

this.ShutdownMode = ShutdownMode.OnMainWindowClose;
Run Code Online (Sandbox Code Playgroud)

如果仍然无效,将其设置为OnExplicitShutdown可行.