Mnohí si myslia, že zatvorenie aplikácie by malo byť jednoduché, napríklad Application.Exit() vo Windows formulári; Metóda môže problém vyriešiť, ale nezneužívajte ho vo WPF, pretože trieda Application túto metódu vo WPF nemá, ale existuje ovládač udalostí Exit a zatvorenie programu v aplikácii WPF venuje veľkú pozornosť:
Uzáver v WPF aplikácii má nastavenie vlastnosti ShutdownMode s hodnotami troch typov enum:
1) OnLastWindowUzavrite žiadosť, keď je posledný formulár uzavretý
2) OnMainWindowUzavrite žiadosť, keď je hlavná forma žiadosti uzavretá
3) OnExplicitShutdown ukazuje ukončený hovor
V režime OnExplicitShutdown musí byť zobrazená metóda ShutDown, ktorá volá inštanciu aplikácie
Napríklad: Application.Current.Shutdown(-1); Tu Application.Current vracia aktuálnu inštanciu aplikácie aktuálnej aplikácie.
Upozorňujeme, že vyššie uvedené sa nevzťahuje na XBAP, ktorý sa automaticky zatvorí, keď je prehliadač zatvorený.
- <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>
Kopírovať kód- private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
- {
- System.Environment.Exit(System.Environment.ExitCode);
- }
Kopírovať kód Ak okno spustí podvlákno: Application.Current.Shutdown(); Nevypína proces aplikácie, System.Environment.Exit(System.Environment.ExitCode); Týmto sa uzavrú všetky detské procesy a proces sa ukončí!
|