Багато хто вважає, що закриття додатку має бути простим, наприклад, Application.Exit() у формі Windows; Метод може вирішити проблему, але не зловживайте нею у WPF, оскільки клас Application не має цього методу у WPF, але є драйвер події Exit, і закриття програми в додатку WPF приділяє багато уваги:
Закриття в WPF-додатку має властивість ShutdownMode із значеннями трьох типів enum:
1) OnLastWindowЗакрити заявку, коли остання форма закрита
2) OnMainWindowЗакрити заявку, коли основна форма додатку закрита
3) OnExplicitShutdown показує, що дзвінок закрито
У режимі OnExplicitShutdown має бути відображений метод ShutDown, який викликає екземпляр Application.
Наприклад: Application.Current.Shutdown(-1); Тут Application.Current повертає поточний екземпляр Application поточної програми.
Зверніть увагу, що вищезазначене не стосується XBAP, який автоматично закривається при закритті браузера.
- <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>
Копія коду- private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
- {
- System.Environment.Exit(System.Environment.ExitCode);
- }
Копія коду Якщо вікно запускає підпотік: Application.Current.Shutdown(); Не зупиняє процес додатку, System.Environment.Exit(System.Environment.ExitCode); Це закриє всі дочірні процеси і завершить процес!
|