[c#] 如何以編程方式退出WPF應用程序?



6 Answers

如果你真的需要它關閉,你也可以使用Environment.Exit()但它不是優雅的(更像是結束這個過程)。

使用方法如下:

Environment.Exit(0)
Question

在我使用C#(WinForms)的幾年中,我從未使用過WPF。 但是,現在我喜歡WPF,但是我不知道當用戶從File菜單中單擊Exit菜單項時我該如何退出我的應用程序。

我努力了:

this.Dispose();
this.Exit();
Application.ShutDown();
Application.Exit();
Application.Dispose();

等等。 什麼都沒有




據我了解, Application.Current.Shutdown()也有其缺點,

如果你想顯示一個確認窗口讓用戶在退出時確認, Application.Current.Shutdown()是不可逆的。




非常簡單,使用下面的代碼

Application.Current.Shutdown();



Caliburn微味

public class CloseAppResult : CancelResult
{
    public override void Execute(CoroutineExecutionContext context)
    {
        Application.Current.Shutdown();
        base.Execute(context);
    }
}

public class CancelResult : Result
{
    public override void Execute(CoroutineExecutionContext context)
    {
        OnCompleted(this, new ResultCompletionEventArgs { WasCancelled = true });
    }
}



private void _MenuExit_Click(object sender, RoutedEventArgs e)
{
   System.Windows.Application.Current.MainWindow.Close();
}

//Override the onClose method in the Application Main window

protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
{
    MessageBoxResult result =   MessageBox.Show("Do you really want to close", "",
                                          MessageBoxButton.OKCancel);
    if (result == MessageBoxResult.Cancel)
    {
       e.Cancel = true;
    }
    base.OnClosing(e);
}



不應該有一個Application.ShutDown(); 或.Exit()消息。

應用程序是一個靜態類。 它不涉及當前的應用程序您需要訪問當前的應用程序,然後像這樣關閉它:

Application.Current.Shutdown();






Related