- WPF專業(yè)編程指南
- 李應(yīng)保著
- 342字
- 2018-12-26 20:48:07
1.3 WPF應(yīng)用程序的啟動(dòng)和終止
表1-1列出了和應(yīng)用程序生存期相關(guān)的事件和方法,通常在相關(guān)事件發(fā)生時(shí),WPF首先調(diào)用Application類中的相應(yīng)方法,然后再產(chǎn)生相關(guān)事件。所以,這些方法常常有相應(yīng)的事件相對(duì)應(yīng)。例如OnActivated方法和Activated事件、OnDeactivated方法和DeActivated事件,等等。
要考察WPF應(yīng)用程序的啟動(dòng)和終止過程,有兩種方法:其一是從Application類中派生出自己的類,并使用虛函數(shù)覆蓋技術(shù)來觀察Application類在運(yùn)行時(shí)調(diào)用虛函數(shù)的過程;其二是處理Application類中的相關(guān)事件。
表1-1 Application類中與應(yīng)用程序生存期相關(guān)的事件

讓我們來看看第一種方法:
using System; using System.Collections.Generic; using System.Text; using System.Windows; namespace Yingbao.Chapter1 { public class HelloWPF { [STAThread] public static void Main() { Window win = new Window(); win.Title = "WPF application"; win.Content = "Hello WPF!"; Application app = new MainApp(); app.Run(win); } } public class MainApp:Application { public MainApp() : base() { } protected override void OnActivated(EventArgs e) { Console.WriteLine("OnActivated"); base.OnActivated(e); } protected override void OnExit(ExitEventArgs e) { Console.WriteLine("OnExit"); base.OnExit(e); } protected override void OnDeactivated(EventArgs e) { Console.WriteLine("OnDeactivated"); base.OnDeactivated(e); } protected override void OnStartup(StartupEventArgs e) { Console.WriteLine("OnStartup"); base.OnStartup(e); } protected override void OnSessionEnding(SessionEndingCancelEventArgs e) { Console.WriteLine("OnSessionEnding"); base.OnSessionEnding(e); } } }
這段程序的運(yùn)行結(jié)果如圖1-3所示。

圖1-3 考察Application中的事件
推薦閱讀
- Mastering Spark for Data Science
- Practical Ansible 2
- Practical Data Wrangling
- 基于ARM 32位高速嵌入式微控制器
- Hands-On Reactive Programming with Reactor
- 零起點(diǎn)學(xué)西門子S7-200 PLC
- 機(jī)器人人工智能
- Spark大數(shù)據(jù)商業(yè)實(shí)戰(zhàn)三部曲:內(nèi)核解密|商業(yè)案例|性能調(diào)優(yōu)
- Natural Language Processing and Computational Linguistics
- 基于人工免疫原理的檢測(cè)系統(tǒng)模型及其應(yīng)用
- Serverless Design Patterns and Best Practices
- 精通ROS機(jī)器人編程(原書第2版)
- Win 7二十一
- Flash CS3動(dòng)畫制作
- Web滲透技術(shù)及實(shí)戰(zhàn)案例解析