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.

1voto

datchung Punkte 2340

Wenn Sie Folgendes verwenden Application.Current.Shutdown() um die Anwendung zu beenden, erhalten Sie möglicherweise eine System.InvalidOperationException: 'The calling thread cannot access this object because a different thread owns it. wenn Sie es aus einem anderen Thread aufrufen. Um dieses Problem zu lösen, können Sie den Aufruf wie folgt verpacken

Application.Current.Dispatcher.Invoke(() => Application.Current.Shutdown());

1voto

jungyeontak Punkte 1
if (System.Windows.Forms.Application.MessageLoop) 
{
    // WinForms app
    System.Windows.Forms.Application.Exit();
    system.Environment.Exit(1);
}

-2voto

Alpha-LIon Punkte 1

Application.Current.ShutdownMode = ShutdownMode.OnExplicitShutdown;

-3voto

Vom Xaml-Code aus können Sie einen vordefinierten SystemCommand aufrufen:

Command="SystemCommands.MinimizeWindowCommand"

Ich denke, dies sollte der bevorzugte Weg sein...

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