Viele Menschen denken, dass das Schließen einer Anwendung einfach sein sollte, zum Beispiel ein Application.Exit() in einem Windows-Formular; Die Methode kann das Problem lösen, aber in WPF sollte man es nicht ausnutzen, da die Application-Klasse diese Methode in WPF nicht hat, aber es gibt einen Exit-Eventtreiber, und das Schließen des Programms in der WPF-Anwendung schenkt viel Aufmerksamkeit:
Der Abschluss in einer WPF-Anwendung hat die Eigenschaftseinstellung ShutdownMode, mit den Werten der 3 Enum-Typen:
1) OnLastWindowSchließen Sie die Anwendung, wenn das letzte Formular geschlossen ist
2) OnMainWindowSchließen Sie die Anwendung, wenn das Hauptformular der Anwendung geschlossen ist
3) OnExplicitShutdown zeigt Anruf geschlossen
Im OnExplicitShutdown-Modus muss die ShutDown-Methode, die die Anwendungsinstanz aufruft, angezeigt werden
Zum Beispiel: Application.Current.Shutdown(-1); Hier gibt Application.Current die aktuelle Anwendungsinstanz der aktuellen Anwendung zurück.
Beachten Sie, dass das oben Genannte nicht für XBAP gilt, das automatisch geschlossen wird, wenn der Browser geschlossen wird.
- <Window x:Class="WpfFistDemo.MainWindow"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- Title="MainWindow" Height="350" Width="525" Loaded="windows_load" Closing="Window_Closing" >
- <Grid>
- </Grid>
- </Window>
Code kopieren- private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
- {
- System.Environment.Exit(System.Environment.ExitCode);
- }
Code kopieren Wenn das Fenster einen Unterthread startet: Application.Current.Shutdown(); Schaltet den Anwendungsprozess System.Environment.Exit(System.Environment.ExitCode) nicht ab; Dadurch werden alle Kinderprozesse geschlossen und der Prozess beendet!
|