Daugelis žmonių mano, kad programos uždarymas turėtų būti paprastas, pvz., Application.Exit() Windows formoje; Metodas gali išspręsti problemą, tačiau nepiktnaudžiaukite juo WPF, nes programos klasė neturi šio metodo WPF, tačiau yra "Exit" įvykio tvarkyklė, o programos uždarymas WPF programoje skiria daug dėmesio:
WPF programos uždarymas turi ypatybės ShutdownMode nustatymą su 3 išvardijimo tipų reikšmėmis:
1) OnLastWindowUždarykite programą, kai paskutinė forma uždaryta
2) OnMainWindowUždarykite programą, kai uždaroma pagrindinė programos forma
3) OnExplicitShutdown rodo, kad skambutis uždarytas
OnExplicitShutdown režimu turi būti rodomas ShutDown metodas, kuris iškviečia programos egzempliorių
Pavyzdžiui: Application.Current.Shutdown(-1); Čia Application.Current grąžina dabartinį programos egzempliorių.
Atkreipkite dėmesį, kad aukščiau pateikta informacija netaikoma XBAP, kuris automatiškai užsidaro uždarius naršyklę.
- <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>
Kopijuoti kodą- private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
- {
- System.Environment.Exit(System.Environment.ExitCode);
- }
Kopijuoti kodą Jei langas pradeda potemę: Application.Current.Shutdown(); Neišjungia programos proceso, System.Environment.Exit(System.Environment.ExitCode); Tai uždarys visus vaiko procesus ir užbaigs procesą!
|