1. 程式人生 > >WPF中的Application,即關閉程式三種方式

WPF中的Application,即關閉程式三種方式

一、介紹
WPF和 傳統的WinForm 類似, WPF 同樣需要一個 Application 來統領一些全域性的行為和操作,並且每個 Domain (應用程式域)中只能有一個 Application 例項存在。和 WinForm 不同的是 WPF Application 預設由兩部分組成 : App.xaml 和 App.xaml.cs,將定義和行為程式碼相分離。當然,這個和WebForm 也比較類似。XAML 從嚴格意義上說並不是一個純粹的 XML 格式檔案,它更像是一種 DSL(Domain Specific Language,領域特定語言),它的所有定義都直接對映成某些程式碼,只是具體的翻譯工作交給了編譯器完成而已。WPF應用程式由 System.Windows.Application類來進行管理。

二、自已定義類用Main方法實現對WPF應用程式的啟動

在專案中新增一個類,類的程式碼如下,在專案選項中,設定此類為啟動項。
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Windows;

namespace WPFApplications
{
    public partial class App : Application
    {
        [STAThread]
        static
void Main() { 定義Application物件作為整個應用程式入口 Application app = new Application(); // 方法一:呼叫Run方法,引數為啟動的窗體物件 ,也是最常用的方法 Window2 win = new Window2(); app.Run(win); // 方法二:指定Application物件的MainWindow屬性為啟動窗體,然後呼叫無引數的Run方法 Window2 win = new
Window2(); app.MainWindow = win; win.Show(); app.Run(); 方法三:通過Url的方式啟動 app.StartupUri = new Uri("Window2.xaml", UriKind.Relative); app.Run(); } } }

三、Application應用程式關閉

OnLastWindowClose(預設值): 最後一個窗體關閉或呼叫Application物件的Shutdown() 方法時,應用程式關閉。
OnMainWindowClose 啟動窗體關閉或呼叫Application物件的Shutdown()方法時,應用程式關 閉。(和C#的Windows應用程式的關閉模式比較類似)
OnExplicitShutdown 只有在呼叫Application物件的Shutdown()方法時,應用程式才會關閉。

對關閉選項更改的時候,可以直接在App.xaml中更改:

<Application x:Class="WPFApplications.App"    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"    StartupUri="Window2.xaml"    ShutdownMode="OnExplicitShutdown">    <Application.Resources>    </Application.Resources></Application>  

同樣你也可以在程式碼檔案(App.xaml.cs)中進行更改,但必須注意這個設定寫在app.Run()方法之前 ,如下程式碼:

app.ShutdownMode = ShutdownMode.OnExplicitShutdown;
app.Run(win);