- 认识Application
Application是System.Windows命名空间里的一个类(应用程序类),该类具有用于启动和停止应用程序和线程以及处理Windows消息的方法。
Application类是WPF程序的一个重要类,通常我们就将该类的实例称为应用程序实例,代表当前应用程序,Application的生命周期自然是从运用程序启动到终止的周期。
- Application的创建
Application的创建分为显式和隐式两种方式。
(1)隐式创建
默认创建的WPF应用程序里的App.xaml就是专门为Application服务的,它提供了Application的属性设置和事件处理程序。默认情况下App.xaml通过StartupUri定义了程序的启动窗体,通过该文件系统自动创建了一个以该启动窗体为主窗体的应用程序实例,并自动运行(激活)。
(2)显示创建
使用这种方法需要删除App.xaml中的StartupUri的值,并且启动函数Main必须是静态的,基本类似于C# WinForm的启动程序。
除了借助App.xaml信息创建Application实例外,我们还可以用类似C#程序一样的方法创建一个独立的启动类,声明静态Main()方法来创建应用程序实例。
该方法需要先删除App.xaml或者将其排除在项目外,不然程序会报有两个入口的错误。其具体实现有两种方式,第一种是给应用程序定义一个启动窗体,然后分别启动窗体和应用程序;第二种是代码配置应用程序的StartupUri属性,然后启动应用程序,该窗体会被自动启动。
- Application的创建:其他显示创建方法
(3)隐式创建的恢复
如果我们尝试了新建类方法后希望恢复WPF的App.xaml来启动系统,则编译后会报错:"不包含适合于入口点的静态"Main"方法",这是因为App.xaml文件的默认"生成操作"属性已经被更改为"Page"了,需要手动重新更改为"ApplicationDefinition"即可
- Application的属性
- ShutdownMode属性
- StartupUri属性
StartupUri属性用于设置应用程序的启动窗口,也就是主窗体。它既可以通过App.xaml来设定,也可以通过代码在静态入口Main()中定义。
- MainWindow属性
MainWindow属性主要用于代码状态下获得或者更改应用程序主窗体。
- Application的方法
- Run()方法
Run()方法将已经创建的应用程序对象开始运行,也称为激活;调用该方法时可以带一个窗体名作为实参,也可以无参数。该方法的运行会触发Application的Startup事件(Application的事件处理程序,定义在App.xaml.cs里)
- Shutdown()方法
无论哪种方式启动的应用程序我们都可以通过Application.Current来作为其Application实例。在该实例下,可以调用Shutdown()方法主动结束程序运行。当应用程序退出时,触发Exit事件