[WPF学习资料] 窗口的生存周期
和所有类一样,窗口也有生存期,在第一次实例化窗口时生存期开始,然后就可以打开、激活和停用窗口,直到最终关闭窗口。
打开窗口
若要打开窗口,首先应创建一个窗口实例,这个功能由Application来完成:
1 <Application x:Class="XAMLDemo.App"
2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4 StartupUri="Window1.xaml">
5 <Application.Resources>
6
7 </Application.Resources>
8 </Application>
2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4 StartupUri="Window1.xaml">
5 <Application.Resources>
6
7 </Application.Resources>
8 </Application>
上面的代码中StartupUri指示的是这个实例的XAML文档,也是这个应用程序的默认窗口类。当然也可以使用Startup属性,定义一个事件,代码如下:
1 <Application
2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4 x:Class="XAMLDemo.App"
5 Startup="app_Startup">
2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4 x:Class="XAMLDemo.App"
5 Startup="app_Startup">
6 </Application>
其中App必须继承Application类,并实现void app_Startup(object sender, StartupEventArgs e)在这里初始化一个类,并调用Show来显示窗口。
注:ShowDialog方法来模式打开窗口,含有隶属之意,如对话框等等。
在使用Show方法或在XAML的StartupUri打开的窗口与创建它的窗口之间没有隐式关系,如果想建立想MDI那样的窗口所属关系,可以使用Owner属性。
当第一次打开窗口时就会激活,则响应Activated事件,停止激活时将响应Deactivated事件。处理 Activated 和 Deactivated 的一个常见原因是为了启用和禁用只有在窗口活动时才能够运行的功能。例如,某些窗口显示的交互式内容需要持续的用户输入或需要用户时刻注意,包括游戏和视频播放机。
关闭窗口
响应closing和closed事件。
慢慢学习!