WPF中的窗口的生命周期
2016-03-06 21:37
232 查看
WPF中所有窗口的基类型都是System.Windows.Window。Window通常用于SDI窗口和对话框。Window在应用程序中除了一个设计用于托管顶级内容的控件外,就别无他物了。典型的,可以混合使用标记和代码来定义一个窗口。代码如下:
在xaml页:
在cs页面中:
运行这段代码将产生一个最原始的窗口:
注意:这样一个无趣的窗口的生命周期也有好几个阶段:
构造器被调用
Window.Initialized事件被触发
Window.Activated事件被触发
Window.Loaded事件被触发
Window.ContentRendered事件被触发
用户和窗口进行交互
Window.Closing事件被触发
Window.Uloaded事件被触发
Window.Closed事件被触发
总结:
户在运行系统上的多个窗口中切换时,Activated和Deactivated(在窗口成为后台窗口时发生)在窗口的生命周期里会发生多次。ContentRendered事件只对窗口第一次完全呈现出来进行触发。为了让一些事情能在所有内容都显示给用户之前马上执行,可以用Loaded事件;为了让一些事情能在所有内容都显示给用户之后马上执行,可以用ContentRendered事件。
在xaml页:
<Window x:Class="WPFApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="This is a Window" Height="350" Width="525"> </Window>
在cs页面中:
namespace WPFApplication1 { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } } }
运行这段代码将产生一个最原始的窗口:
注意:这样一个无趣的窗口的生命周期也有好几个阶段:
构造器被调用
Window.Initialized事件被触发
Window.Activated事件被触发
Window.Loaded事件被触发
Window.ContentRendered事件被触发
用户和窗口进行交互
Window.Closing事件被触发
Window.Uloaded事件被触发
Window.Closed事件被触发
总结:
户在运行系统上的多个窗口中切换时,Activated和Deactivated(在窗口成为后台窗口时发生)在窗口的生命周期里会发生多次。ContentRendered事件只对窗口第一次完全呈现出来进行触发。为了让一些事情能在所有内容都显示给用户之前马上执行,可以用Loaded事件;为了让一些事情能在所有内容都显示给用户之后马上执行,可以用ContentRendered事件。
相关文章推荐
- java面向接口编程
- python内存管理与垃圾回收
- 重启nginx后丢失nginx.conf文件
- Logstash+Redis+Elasticsearch+Kibana+Nginx搭建日志分析系统
- 【黑马Android】(01)android简介/工程目录结构/拨号器/四种点击事件/后台偷偷发短信
- 位段那些事
- QT 给.exe文件添加图标
- Traveling in Blade & Soul
- TCP协议中的三次握手和四次挥手
- 如何获取app 崩溃信息
- java内存模型详解
- hdu2295Radar [dancing links重复覆盖]
- 第31讲-循环控制结构及流程图-练习(使用rose作图工具)
- getDeclaredConstructor()与getConstructor的差别
- LintCode:Majority Number / Majority Number II / Majority Number III
- 关于windows激活的问题
- 蓝桥杯--关于暴力枚举
- [leetcode Q58] Length of Last Word
- 我是如何给实验室的服务器上网的
- 简单的时间片轮转多道程序内核代码