Sokan úgy gondolják, hogy egy alkalmazás lezárásának egyszerűnek kell lennie, például egy Application.Exit() egy Windows űrlapban; A metódus megoldhatja a problémát, de ne használd vissza a WPF-ben, mert az Application osztályban nincs ilyen módszer a WPF-ben, de van Exit event driver, és a program bezárása a WPF alkalmazásban nagy figyelmet igényel:
A WPF alkalmazásban a zárás a ShutdownMode tulajdonságbeállítást tartalmazza, a három enum típus értékeivel:
1) OnLastWindowZárja be a jelentkezést, amikor az utolsó űrlap bezárt
2) OnMainWindowZárd be az alkalmazást, amikor az alkalmazás fő formája zárva van
3) Az OnExplicitShutdown hívás lezárt hívást mutat
OnExplicitShutdown módban meg kell jeleníteni az alkalmazáspéldányt hívó ShutDown módszert
Például: Application.Current.Shutdown(-1); Itt az Application.Current a jelenlegi alkalmazás alkalmazáspéldányát adja vissza.
Fontos megjegyezni, hogy a fentiek nem vonatkoznak az XBAP-re, amely automatikusan bezárul, amikor a böngésző bezárul.
- <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>
Kód másolása- private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
- {
- System.Environment.Exit(System.Environment.ExitCode);
- }
Kód másolása Ha az ablak indít egy alszálat: Application.Current.Shutdown(); Nem állítja le az alkalmazás folyamatát, System.Environment.Exit(System.Environment.ExitCode); Ez lezárja az összes gyermekfolyamatot és véget vet a folyamatnak!
|