天天看點

WPF關閉應用程式方法

原文:

WPF關閉應用程式方法

 很多人認為關閉應用程式應該很簡單,例如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檔案:

WPF關閉應用程式方法

代碼

   <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中調用該方法即立即退出,不會等待目前工作完成。