您好,登錄后才能下訂單哦!
一、WPF 應用程序由 System.Windows.Application 類進行管理
二、創建 WPF 應用程序
創建 WPF 應用程序有兩種方式:
1、Visual Studio 和 Expression Blend 默認的方式,使用 App.xaml 文件定義啟動應用
程序
App.xaml 文件的內容大致如下:
1: <Application x:Class="WpfApplicationLifeCycle.App"
2: xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presen
tation"
3: xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4: StartupUri="Window1.xaml">
5: <Application.Resources>
6: </Application.Resources>
7: </Application>
其中 StartupUri 指定啟動的 WPF 窗體
2、可以自已定義類,定義 Main 方法實現對 WPF 應用程序的啟動
在項目中添加一個類,類的代碼如下,在項目選項中,設定此類為啟動項。
1: using System;
2: using System.Windows;
3:
4: namespace WpfApplicationLifeCycle
5: {
6: public class MainClass
7: {
8: [STAThread]
9: static void Main()
10: {
11: // 定義 Application 對象
12: Application app = new Application();
13:
14: // 方法一:調用 Run 方法,參數為啟動的窗體對象
15: Window2 win = new Window2();
16: app.Run(win);
17:
18: // 方法二:指定 Application 對象的 MainWindow 屬性為啟動窗體,
調用無參數的 Run 方法
19: //Window2 win = new Window2();
20: //app.MainWindow = win;
21: //win.Show(); // 此處必須有 win.Show(),否則不能
顯示窗體
22: //app.Run();
23:
24: // 方法三:
25: //app.StartupUri = new Uri("Window2.xaml", UriKind.R
elative);
26: //app.Run();
27: }
28: }
29: }
三、應用程序關閉
應用程序關閉時的策略由 ShutdownMode 屬性指定,其類型為 System.Window
s.ShutdownMode 枚舉類型,其枚舉成員有:
OnLastWindowClose(默認值):當應用程序中的最后一個窗體關閉時或調用 Applic
ation 對象的 Shutdown()方法時,應用程序關閉;
OnMainWindowClose:當主窗體(即啟動窗體)關閉時或調用 Application 對象的 S
hutdown()方法時,應用程序關閉。(類似于 C#的 Windows 應用程序的關閉模式);
OnExplicitShutdown:只有在調用 Application 對象的 Shutdown()方法時,應用
程序才會關閉;
更改的時候,可以直接在 App.xaml 中更改:
1: <Application x:Class="WpfApplicationLifeCycle.App"
2: xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presen
tation"
3: xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4: StartupUri="Window1.xaml"
5: ShutdownMode="OnExplicitShutdown">
6: <Application.Resources>
7: </Application.Resources>
8: </Application>
也可以在代碼文件(App.xaml.cs)中更改
1: Application app = new Application();
2: Window2 win = new Window2();
3:
4: // 更改關閉模式必須要在調用 app.Run()方法之前
5: app.ShutdownMode = ShutdownMode.OnExplicitShutdown;
6: app.Run(win);
四、Application 對象的事件
應用程序的事件處理可以:
1、在 App.xaml 中做事件的綁定,在 App.xaml.cs 文件中添加事件的處理方法
在 App.xaml 文件中:
1: <Application x:Class="WpfApplicationLifeCycle.App"
2: xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presen
tation"
3: xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4: StartupUri="Window1.xaml"
5: Startup="Application_Startup">
6: <Application.Resources>
7: </Application.Resources>
8: </Application>
在 App.xaml.cs 文件中:
1: using System.Windows;
2:
3: namespace WpfApplicationLifeCycle
4: {
5: /// <summary>
6: /// Interaction logic for App.xaml
7: /// </summary>
8: public partial class App : Application
9: {
10: private void Application_Startup(object sender, Startup
EventArgs e)
11: {
12: // 定義應用程序啟動時要處理的內容
13: }
14: }
15: }
2、在自定義的類中可以做正常的 C#的事件綁定:
1: [STAThread]
2: static void Main()
3: {
4: // 定義 Application 對象
5: Application app = new Application();
6: Window2 win = new Window2();
7:
8: // 添加事件的綁定
9: app.Startup += new StartupEventHandler(app_Startup);
10:
11: app.Run(win);
12: }
13:
14: static void app_Startup(object sender, StartupEventArgs e)
15: {
16: Window2 win = new Window2();
win.Show();
win.button1.Content = "YOU!";
17: }
主窗體載入時,會在 Window2 里面定義的 button1 上面就會顯示 YOU!
五、WPF 應用程序生存周期
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。