C# 为什么关闭启动屏幕会导致我的主窗口无法显示?
我正在我的App.xaml.cs中覆盖OnStartup方法,如下所示。但是,一旦我添加了启动屏幕关闭,我的主窗口将永远不会显示。调试器到达main.Show()行,但在执行完毕后,应用程序关闭。有什么想法吗C# 为什么关闭启动屏幕会导致我的主窗口无法显示?,c#,wpf,startup,splash-screen,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();
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();
}
由于的默认值为
OnLastWindowClose
,因此当您关闭启动屏幕时,程序退出。
您可以通过在调用base.OnStartup后添加以下代码来更改此设置
this.ShutdownMode = ShutdownMode.OnMainWindowClose;
如果仍然不起作用,将其设置为OnExplicitShutdown
可能会起作用。该方法会打开一个窗口
,而无需等待它关闭
您应该使用应用程序的方法停止执行,直到应用程序关闭。另一种解决方案是首先加载主窗口,但将其可见性属性设置为隐藏。然后从那里启动启动屏幕,一旦关闭,将可见性更改回可见 对。一个简单的解决方法是在splash.Close()之前调用main.Show()