我有一个WPF应用程序,作为启动的一部分,我需要显示一个模态窗口,以便从用户那里获得一些信息。 我从App.xaml.cs_ApplicationStartup中创建并显示窗口。 在窗口的ok按钮中,我调用Close()方法。 检索完信息后,我想显示主应用程序窗口。 但是,主应用程序窗口立即收到WindowClosing事件并终止。 App.xaml代码:
private void ApplicationStartup(object sender, StartupEventArgs e)
{
if (Settings.Default.AskForLoginCredentials)
{
var loginWindow = new LoginCredentialsWindow();
bool? retVal = loginWindow.ShowDialog();
if (retVal.HasValue && retVal.Value)
{
string un = loginWindow.UserName;
string pw = loginWindow.Password;
}
else
{
_logger.Info("Credential request prompt was refused. Exiting Application.");
return;
}
}
MainAppWindow window = new MainAppWindow();
window.Show();
}
这里发生了什么?
答案 0 :(得分:2)
默认值为OnLastWindowClose
,表示应用程序将在最后一个窗口关闭时关闭。其他两个选项是OnMainWindowClose
和OnExplicitShutdown
我通常使用OnExplicitShutdown
,这意味着需要调用Shutdown()让应用程序退出