关闭WPF主程序方法

声明:以下转自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 在浏览器关闭时自动关闭。

                               

 

需求:需要在许多子窗体中关闭整个程序(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) 会更稳妥些。

你可能感兴趣的:(windows,object,application,button,WPF,WinForm)