摘要:
WPF是微软最新的图形用户界面技术,从2003年公之于众(当时开发代号Avalon),其革命性的创建软件的方式便引起了高度关注,特别是对于使用Windows Form和GDI开发的人员。时至今日使用WPF进行开发已经不是什么新鲜事,但我还是想写一点关于WPF的东西与不太了解WPF的朋友一起学习。OK,今天就从最基础的开始吧,我们一块看一下WPF应用程序的生命周期。
内容:
1.一个简单的WPF应用
2.WPF中的主窗体
3.Application的生命周期
4.单实例运行WPF应用
一、一个简单的WPF应用
WPF应用程序是一种包含Application对象的Windows进程,Application对象提供了生命周期服务,因此要了解WPF应用的生命周期我们就需要从Application开始。
首先我们建立一个WPF应用,在默认情况下我们运行这个应用程序。
我们使用默认WPF Application创建了一个WPF应用,默认情况下我们什么都不做,点击运行就会看到上面的窗口。那么这背后Visual Studio为我们做了什么呢?我们知道在Winform中有一个Program.cs,其中定义了Main函数,程序从Main开始执行,那么WPF有没有类似的函数呢?我们的MainWindow又是在何处指定运行的?
我们可以看到VS为我们自动生成了一个App.xaml及其对应的隐藏文件App.xaml.cs。在App.xaml.cs中我们可以看到它没有创建任何类,更没有启动MainWindow,那么打开App.xaml呢?打开App.xaml文件代码如下:
<Application x:Class="WPFLifeCycle.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml" ShutdownMode="OnLastWindowClose">
<Application.Resources>
</Application.Resources>
</Application>
在这里我们看到x:Class="WPFLifeCycle.App",事实上这样的代码等同于创建了一个名为App的Application对象。而根节点Application的StartupUri属性指定了启动的窗口(StartupUri="MainWindow.xaml"),这就相当于创建了一个MainWindow类型的