0

私は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();
}

ここで何が起きてるの?

4

1 に答える 1

2

Application.ShutdownModeプロパティを変更します

デフォルトはですOnLastWindowClose。これは、最後のウィンドウが閉じたときにアプリケーションがシャットダウンすることを意味します。OnMainWindowClose他の2つのオプションはOnExplicitShutdown

私は通常、を使用します。これは、アプリケーションを終了するためにShutdown()を呼び出す必要がOnExplicitShutdownあることを意味します

于 2012-06-13T15:57:38.710 に答える