555 Stimmen

Wie kann ich eine WPF-Anwendung programmgesteuert beenden?

Wie soll man eine Anwendung beenden, wenn der Benutzer z. B. auf den Menüpunkt Beenden im Menü Datei klickt?

Ich habe es versucht:

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

Neben vielen anderen. Nichts funktioniert.

7voto

Ravi Punkte 69
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);
}

7voto

Iwona Kubowicz Punkte 354

Versuchen Sie

App.Current.Shutdown();

Für mich

Application.Current.Shutdown(); 

hat nicht funktioniert.

3voto

Anders Punkte 17064

Caliburn micro aromatisiert

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 });
    }
}

2voto

Soumya Mahunt Punkte 615

Wenn Sie das Programm von einem anderen Thread aus beenden wollen, der das Anwendungsobjekt nicht erstellt hat, verwenden Sie: System.Windows.Application.Current.Dispatcher.InvokeShutdown()

2voto

App.Current.Shutdown();
Schreiben Sie das, wo Sie es brauchen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X