Daudzi cilvēki domā, ka lietojumprogrammas aizvēršanai jābūt vienkāršai, piemēram, Application.Exit() Windows veidlapā; Metode var atrisināt problēmu, bet nelietojiet to ļaunprātīgi WPF, jo lietojumprogrammu klasei nav šīs metodes WPF, bet ir Exit notikuma draiveris, un programmas aizvēršana WPF lietojumprogrammā pievērš lielu uzmanību:
WPF lietojumprogrammas slēgšanai ir rekvizīta ShutdownMode iestatījums ar 3 uzskaitījuma tipu vērtībām:
1) OnLastWindowAizveriet lietojumprogrammu, kad pēdējā veidlapa ir aizvērta
2) OnMainWindowAizveriet lietojumprogrammu, kad lietojumprogrammas galvenā forma ir aizvērta
3) OnExplicitShutdown rāda, ka zvans ir aizvērts
Režīmā OnExplicitShutdown ir jāparāda metode ShutDown, kas izsauc lietojumprogrammas instanci
Piemēram: Application.Current.Shutdown(-1); Šeit Application.Current atgriež pašreizējās lietojumprogrammas pašreizējo lietojumprogrammas instanci.
Ņemiet vērā, ka iepriekš minētais neattiecas uz XBAP, kas automātiski aizveras, aizverot pārlūkprogrammu.
- <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ēt kodu- private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
- {
- System.Environment.Exit(System.Environment.ExitCode);
- }
Kopēt kodu Ja logs sāk apakšpavedienu: Application.Current.Shutdown(); Neizslēdz lietojumprogrammas procesu System.Environment.Exit(System.Environment.ExitCode); Tas aizvērs visus bērna procesus un beigs procesu!
|