Beaucoup de gens pensent que fermer une application devrait être simple, comme un Application.Exit() dans un formulaire Windows ; La méthode peut résoudre le problème, mais ne l’abusez pas dans WPF, car la classe Application n’a pas cette méthode dans WPF, mais il existe un pilote d’événement Exit, et fermer le programme dans l’application WPF accorde beaucoup d’attention :
La clôture dans une application WPF possède le paramètre de propriété ShutdownMode, avec les valeurs des 3 types d’enum :
1) OnLastWindowFermer la demande lorsque le dernier formulaire est fermé
2) OnMainWindowFermer l’application lorsque la forme principale de la demande est fermée
3) Sur ExplicitShutdown montre la fermeture de l’appel
En mode OnExplicitShutdown, la méthode ShutDown qui appelle l’instance Application doit être affichée
Par exemple : Application.Current.Shutdown(-1) ; Ici, Application.Current renvoie l’instance actuelle de l’application actuelle.
Notez que ce qui précède ne s’applique pas au XBAP, qui se ferme automatiquement lorsque le navigateur est fermé.
- <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 de copie- private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
- {
- System.Environment.Exit(System.Environment.ExitCode);
- }
Code de copie Si la fenêtre lance un sous-fil : Application.Current.Shutdown() ; Ne coupe pas le processus de l’application, System.Environment.Exit(System.Environment.ExitCode) ; Cela fermera tous les processus enfants et mettra fin au processus !
|