2010-08-22 27 views
19

Schließen Dies ist leicht in Bezug auf die Frage gestellt hier noch die Antwort nicht nach meinem Fall nicht anwendbar, da ich nicht Threads bin:WPF-Anwendung läuft noch im Hintergrund nach

WPF Not closing properly

I umgewandelt habe eine von Meine WinForm-Anwendung auf eine WPF-Anwendung, nichts Drastisches getan werden muss, außer für ein paar Worte zu den WPF/C# 4.0-Äquivalenten (MessageBoxButtons zu MessageBoxButton, warum der Unterschied von einem Buchstaben?).

Wie auch immer, wenn ich die Anwendung über den Debugger ausführen, läuft es gut, bis ich komme, um es mit der Schaltfläche "X" oben rechts im Fenster zu schließen. Das Anwendungsfenster wird geschlossen, aber ich habe bemerkt, dass der Debugger immer noch das Stop-Symbol anzeigt. Beim Einchecken bestätigt der Task-Manager, dass er noch läuft.

Ich führe keine anderen Threads im Hintergrund, also weiß ich, dass es nicht auf etwas anderes wartet.

Ich habe gerade erst mit WPF begonnen, aber ich nahm an, dass, wenn der Benutzer die Anwendung schließt, dann sollte es nur ... schließen?

Danke für die Hilfe!

Antwort

33

Was ist Ihre shutdown mode? Wenn es explizit ist, dann liegt es daran, dass Sie nicht explizit herunterfahren. Wenn es das Hauptfenster ist, liegt das daran, dass Sie das Hauptfenster nicht Application.MainWindow zugewiesen haben.

+2

Dank! Ich wusste nie, dass es unterschiedliche Verhaltensweisen gibt, um eine Anwendung herunterzufahren. Ich habe einfach "ShutdownMode =" OnMainWindowClose "" zu meiner XAML-Anwendung hinzugefügt, wie in Ihrem Link angegeben, und es funktionierte wie ein Zauber! –

9

schreiben Sie diesen Code auf Anfrage Schließen-Taste:

Application.Current.Shutdown() 
+1

Ich hatte keine schließende Taste, aber indem ich auf das x klicke, wird das Closed-Ereignis aufgerufen und das funktionierte gut für mich: this.Closed + = (s, e) => Application.Current.Shutdown(); – Despertar

Verwandte Themen