Mange mener, at det skal være simpelt at lukke en applikation, såsom en Application.Exit() i en Windows-formular; Metoden kan løse problemet, men misbrug det ikke i WPF, fordi Application-klassen ikke har denne metode i WPF, men der findes en Exit-eventdriver, og at lukke programmet i WPF-applikationen giver meget opmærksomhed:
Lukningen i en WPF-applikation har ShutdownMode-egenskabsindstillingen, med værdierne af de 3 enum-typer:
1) OnLastWindowLuk applikationen, når den sidste formular lukkes
2) OnMainWindowLuk applikationen, når hovedformen af applikationen er lukket
3) OnExplicitShutdown viser opkaldet lukket
I OnExplicitShutdown-tilstand skal ShutDown-metoden, der kalder applikationsinstansen, vises
For eksempel: Application.Current.Shutdown(-1); Her returnerer Application.Current den aktuelle applikationsinstans af den aktuelle applikation.
Bemærk, at ovenstående ikke gælder for XBAP, som automatisk lukker, når browseren lukkes.
- <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>
Kopier kode- private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
- {
- System.Environment.Exit(System.Environment.ExitCode);
- }
Kopier kode Hvis vinduet starter en undertråd: Application.Current.Shutdown(); Lukker ikke applikationens proces, System.Environment.Exit(System.Environment.ExitCode); Dette lukker alle børneprocesserne og afslutter processen!
|