[C#.NET][WPF] Application 事件的生命週期
開啟一個WPF應用程式後,
會產生App.xmal與MainWindow1.xmal,App.xmal.cs裡面就是繼承了Application類別
MainWindow1.xaml裡面裝的是UI畫面的樣式,MainWindow1.xaml.cs 則是裝程式碼邏輯
Application.StartupUri屬性,可以指定要哪一個xaml先啟定。
大致上瞭解它裡面擺了什麼東西後,接下來就來研究一下應用程式啟動的生命週期
我花了點時間找出Application.Run方法寫在哪裡,當專案編譯後會在WpfApplication1\WpfApplication1\obj\x86\Debug\App.g.cs,我嘗試著對它中斷,但它不會停在那邊,不過沒有這些Code應用程式是沒辦法運行的,未來若是在VS裡找不到的設定,就來這邊找找看。
/// <summary>
/// Application Entry Point.
/// </summary>
[System.STAThreadAttribute()]
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
public static void Main() {
WpfApplication1.App app = new WpfApplication1.App();
app.InitializeComponent();
app.Run();
}
然後在App.xaml設計模式下新增事件,雙擊事件名稱就會自動幫你產生程式碼
加入一些Code來觀察一下
當完成Startup事件後,應用程式中的切換會觸發,Activated 與 Deactivated 事件;Activated事件會發生在兩個時機,一個是第一次啟動時,另一個是從其它程式時,比如我們用Alt+Tab切換視窗(或滑鼠點擊其它視窗),離開主程式視窗會觸發Deactivated事件,切回來主視窗會觸發Activated事件。
關閉視窗後當然會觸發Exit事件了。正常情況下WPF會自動幫我們呼叫 Application.Shutdown 方法
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET