Monet ajattelevat, että sovelluksen sulkeminen pitäisi olla yksinkertaista, kuten Application.Exit() Windows-lomakkeessa; Metodi voi ratkaista ongelman, mutta älä käytä sitä väärin WPF:ssä, koska Application-luokassa ei ole tätä metodia WPF:ssä, mutta Exit-tapahtumaajuri on olemassa, ja ohjelman sulkeminen WPF-sovelluksessa kiinnittää paljon huomiota:
WPF-sovelluksen sulkeutuminen sisältää ShutdownMode-ominaisuusasetuksen, jossa on kolmen enum-tyypin arvot:
1) OnLastWindowSulje hakemus, kun viimeinen lomake on suljettu
2) PääikkunassaSulje sovellus, kun sovelluksen päämuoto on suljettu
3) OnExplicitShutdown näyttää puhelun suljetuksi
OnExplicitShutdown-tilassa ShutDown-menetelmä, joka kutsuu sovelluksen instanssia, on näytettävä
Esimerkiksi: Application.Current.Shutdown(-1); Tässä Application.Current palauttaa nykyisen sovelluksen sovelluksen nykyisen Sovellus-instansin.
Huomaa, että yllä oleva ei koske XBAP:ia, joka sulkeutuu automaattisesti, kun selain suljetaan.
- <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>
Kopioi koodi- private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
- {
- System.Environment.Exit(System.Environment.ExitCode);
- }
Kopioi koodi Jos ikkuna käynnistää alisäikkeen: Application.Current.Shutdown(); Ei sulje sovelluksen prosessia, System.Environment.Exit(System.Environment.ExitCode); Tämä sulkee kaikki lapsiprosessit ja lopettaa prosessin!
|