声明:以下转自http://blog.csdn.net/peng_cheng_84/archive/2009/06/02/4237140.aspx。
很多人认为关闭应用程序应该很简单,例如 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 在浏览器关闭时自动关闭。
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) 会更稳妥些。