0

我有一个 WPF 应用程序,作为启动的一部分,我需要显示一个模式窗口以从用户那里获取一些信息。我从 App.xaml.cs_ApplicationStartup 内部创建并显示窗口。在窗口的确定按钮中,我调用了 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();
}

这里发生了什么?

4

1 回答 1

2

更改Application.ShutdownMode属性

默认值为OnLastWindowClose,这意味着应用程序将在最后一个窗口关闭时关闭。其他两个选项是OnMainWindowCloseOnExplicitShutdown

我通常使用OnExplicitShutdown,这意味着需要调用Shutdown()才能退出应用程序

于 2012-06-13T15:57:38.710 回答