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

时间:2012-05-09 15:47:31

标签: c# wpf startup splash-screen

我在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();
}

3 个答案:

答案 0 :(得分:5)

由于ShutdownMode的默认值为OnLastWindowClose,因此当您关闭启动画面时,程序将退出。 您可以在调用base.OnStartup

之后添加以下代码来更改此设置
this.ShutdownMode = ShutdownMode.OnMainWindowClose;

如果仍然无法将其设置为OnExplicitShutdown可能有效。

答案 1 :(得分:0)

Show方法会打开Window而无需等待其关闭。

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

答案 2 :(得分:0)

另一种解决方案是首先加载主窗口,但将其可见性属性设置为隐藏。然后从那里启动启动画面,一旦关闭,将可见性恢复为可见。