基本信息
文件名称:C#?WPF编程之Application类的使用详解.docx
文件大小:19.83 KB
总页数:10 页
更新时间:2025-05-22
总字数:约6.17千字
文档摘要

C#?WPF编程之Application类的使用详解

目录应用程序的生命周期创建Application对象应用程序的关闭方式应用程序事件Application类的任务显示初始界面处理命令行参数访问当前Application对象在窗口之间进行交互程序集资源添加资源检索资源packURI内容文件

应用程序的生命周期

在WPF中,应用程序会经历简单的生命周期。本质上,VisualStudio为Application类使用的模型与用于窗口的模型相同。起点是XAML模板,默认情况下该模板命名为App.xaml:

创建Application对象

Applicationx:xmlns=/winfx/2006/xaml/presentation

xmlns:x=/winfx/2006/xaml

xmlns:local=clr-namespace:WpfApp3

StartupUri=MainWindow.xaml

Application.Resources

/Application.Resources

/Application

StartupUri属性来确定主窗口的XAML文档。因此不需要代码显式地实例化窗口,XAML解析器自动完成这项工作。自动生成的部分在项目中是不可见的,看起来如下:

usingSystem;

usingSystem.Windows;

publicpartialclassApp:Application

[STAThread()]

publicstaticvoidMain()

WpfApp3.Appapp=newWpfApp3.App();

app.InitializeComponent();

app.Run();

publicvoidInitializeComponent()

this.StartupUri=newUri(Window1.xaml,System.UriKind.Relative);

}

应用程序的关闭方式

通常,只要有窗口未关闭,Application类就保持应用程序处于有效状态。

可通过Appliaction.ShutdownMode属性修改关闭模式,枚举值:

OnLastWindowClose:默认行为,只少有一个窗口存在,应用程序就保持运行状态。OnMainWindowClose:传统方式,只要主窗口还处于打开状态,应用程序就保持运行状态。OnExplictitShutdown:除非调用Application.Shutdown()方法,否则应用程序不会结束。

App.xaml文件中添加ShutdownMode=OnMainWindowClose

Applicationx:xmlns=/winfx/2006/xaml/presentation

xmlns:x=/winfx/2006/xaml

xmlns:local=clr-namespace:WpfApp3

StartupUri=MainWindow.xaml

ShutdownMode=OnMainWindowClose

Application.Resources

/Application.Resources

/Application

应用程序事件

App.xaml.cs文件里可添加代码来处理应用程序事件。

应用程序事件:

Startup:该事件在调用Application.Run()方法之后,并且在主窗口显示之前。Exit:该事件在应用程序关闭时,并在Run()方法即将返回之前发生。SessionEnding:该事件在Window对话结束时发生。Activated:当激活应用程序中的窗口是发生该事件。Deactivated:当取消激活用用程序中的窗口时发生该事件。DispatcherUnhandledException:在应用程序中的任何位置,只要发送未处理的异常,就会发生该事件。处理事件两种方法:关联事件处理程序;

重写相应的受保护方法。

关联事件处理程序,如xmal中添加事件处理DispatcherUnhandledException=Application_DispatcherUnhandledException

App.xaml

Applicationx:xmlns=/winfx/2006/xaml/presentation

xmlns:x=/winfx/2006/xaml

xmlns:local=clr-n