Mnoho lidí si myslí, že uzavření aplikace by mělo být jednoduché, například Application.Exit() ve formuláři Windows; Tato metoda může problém vyřešit, ale nezneužíváte ho ve WPF, protože třída Application tuto metodu ve WPF nemá, ale existuje ovladač událostí Exit a uzavření programu v aplikaci WPF věnuje velkou pozornost:
Uzavření v aplikaci WPF má nastavení vlastnosti ShutdownMode s hodnotami tří typů enum:
1) OnLastWindowUzavřete žádost, když je poslední formulář uzavřen
2) OnMainWindowUzavřete žádost, když je hlavní formulář žádosti uzavřen
3) OnExplicitShutdown ukazuje uzavřený hovor
V režimu OnExplicitShutdown musí být zobrazena metoda ShutDown, která volá instanci aplikace
Například: Application.Current.Shutdown(-1); Zde Application.Current vrací aktuální instanci aplikace aktuální aplikace.
Upozorňujeme, že výše uvedené se nevztahuje na XBAP, který se automaticky zavírá po zavření prohlížeče.
- <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írovat kód- private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
- {
- System.Environment.Exit(System.Environment.ExitCode);
- }
Kopírovat kód Pokud okno spustí podvlákno: Application.Current.Shutdown(); Nezastavuje proces aplikace, System.Environment.Exit(System.Environment.ExitCode); Tím se všechny dětské procesy uzavře a proces skončí!
|