很多人認為關閉應用程式應該很簡單,例如WindowsForm里一個Application.Exit();方法就可以解決問題,但在WPF裡面可別濫用,因為WPF里Application類沒有該方法,倒是有一個Exit的事件驅動,在WPF應用程式裡面關閉程式講究很多: 在WPF應用程式的關閉是有Shut ...
很多人認為關閉應用程式應該很簡單,例如WindowsForm里一個Application.Exit();方法就可以解決問題,但在WPF裡面可別濫用,因為WPF里Application類沒有該方法,倒是有一個Exit的事件驅動,在WPF應用程式裡面關閉程式講究很多:
在WPF應用程式的關閉是有ShutdownMode屬性設置,具有3中枚舉類型的值:
1)OnLastWindowClose 應用程式最後一個窗體關閉時關閉應用程式
2)OnMainWindowClose 應用程式主窗體關閉時關閉應用程式
3)OnExplicitShutdown 顯示調用關閉
在OnExplicitShutdown模式下必須顯示調用Application實例的ShutDown方法
例如:Application.Current.Shutdown(-1);這裡Application.Current返回當前應用程式的當前Application實例。
註意以上不適應XBAP,XBAP在瀏覽器關閉時自動關閉。
需求:需要在許多子窗體中關閉整個程式(WPF)
winform實現:Application.Exit();
WPF實現:
App.xaml文件:
代碼 <Application x:Class="pc.App"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="Windows1.xaml" ShutdownMode="OnExplicitShutdown">
Windows1.xaml文件(部分):
<Button Margin="37,0,15,15" Style="{DynamicResource btn_Exit}" Content="Button" Grid.Column="2" Grid.Row="3" Height="41" VerticalAlignment="Bottom" Width="100" x:Name="btn_Exits" Click="btn_Exits_Click" />
Windows1.xaml.cs文件(部分):
private void btn_Exits_Click(object sender, RoutedEventArgs e)
{
Application.Current.Shutdown();
}
十分簡單!此後只需在按鈕事件中加入Application.Current.Shutdown(),即可退出程式
另外,還有一種強制終止應用程式進程的方法
Environment.Exit(0)可以立即中斷程式執行並退出
這個方法用起來的感覺類似在任務管理器里找到進程並終止,即立刻關閉進程,不管該進程目前有沒有工作,在做什麼工作。
在WPF中調用該方法即立即退出,不會等待當前工作完成。