VS 并不采用这种模式,而是从Application类中派生一个自定义的类,在派生的自定义类中,放置所有事件处理代码。VS为Application类使用的模型本子上和用于窗口的模式是相同的,七点是一个XAML的模板,默认情况下,被默认为App.xaml
应用程序的关闭方式 :ShutdownMode
应用程序事件:
- Startup:在调用Run方法之后,主窗口显示之前发生;
- Exit:在应用程序关闭时,在Run方法返回之前发生;
- SessionEnding:在Windows对话结束时发生,对用户注销或关闭计算机
- Activated:当应用程序的一个窗口被激活,从其他应用程序切换到当前应用程序
- Deactivated:当一个应用程序被取消激活,切换到另一个应用程序
- DispatcherUnhandledException:发生未处理异常触发事件
有两种选择用于处理这些事件;
- 关联事件的处理程序
- 重写相应的受保护的方法:对于每一个应用程序都可以调用相关的方法来引发这个事件。方法的名称就是 On+事件的名称,
Application 类的任务:
-
显示初始界面 :设置图片属性为SplashScreen时,在加载主窗体时同时加载图像
-
处理命令参数行:响应StartUp事件 ——在项目邮件,属性,调试,命令行参数
App.xaml
private void Application_Startup(object sender, StartupEventArgs e) { MainWindow win = new MainWindow(); if (e.Args.Length > 0) { string file = e.Args[0]; if (File.Exists(file)) { win.LoadFile(file); } } win.Show(); }
MainWindow
public void LoadFile(string path) { //this.Content = File.ReadAllText(path); this.TextBlock.Text = System.IO.File.ReadAllText(path); this.Title = path; }
-
访问当前Application对象
通过静态对象的Common属性,可以在任何地方获取当前应用程序实例,从而实现窗口的交互。(任何对象都可以访问Application对象并通过Application对象获取主窗口的引用)
- 在窗口之间切换