WPF:window.ShowDialog()然后window.Show() - 应用程序停止

时间:2014-08-27 18:50:07

标签: c# wpf

我尝试显示身份验证窗口,然后打开主窗口, 但是当您关闭授权窗口时,应用程序将停止

private void App_OnStartup(object sender, StartupEventArgs e)
{
  new LoginWindow().ShowDialog();
  new MainWindow().Show();
  // Then application stopped
}

BUT!

如果使用方法Show()进行显示窗口认证,则关闭授权窗口后应​​用程序不会关闭

private void App_OnStartup(object sender, StartupEventArgs e)
{
  new LoginWindow().Show();
  new MainWindow().Show();
  // Then application running
}

为什么会出现这种情况???

2 个答案:

答案 0 :(得分:2)

感谢Eran Otzap!

Application.Current.ShutdownMode = ShutdownMode.OnExplicitShutdown;

正在工作!

答案 1 :(得分:1)

默认情况下,当应用程序的主窗口关闭时,应用程序将关闭。

根据文档," Application.MainWindow会自动设置,并引用要在AppDomain中实例化的第一个Window对象。"

要解决此问题,您可以尝试首先创建一个MainWindow对象(不调用Show()), 然后创建并显示登录对话框,然后显示主窗口。