跳转到主要内容

WPF基础功法

Application的生命周期

OnStartup:表示启动应用程序时
OnActivated:表示激活应用程序时
OnDeactivated:表示由激活状态变为非激活状态时
OnExit:表示退出应用程序时

Window窗体的生命周期

SourceInitialized	创建窗体源时引发此事件
Activated	当前窗体成为前台窗体时引发此事件
Loaded	当前窗体内部所有元素完成布局和呈现时引发此事件
ContentRendered	当前窗体的内容呈现之后引发此事件
------Deactivated	当前窗体成为后台窗体时引发此事件====Activated	当前窗体成为前台窗体时引发此事件
Closing	当前窗体关闭之前引发此事件
Deactivated	当前窗体成为后台窗体时引发此事件
Closed	当前窗体关闭之后引发此事件
Unloaded	当前窗体从元素树中删除时引发此事件

ContentControl

Content属性在ContentControl类中

加载和解析 XAML

编译器会将 XAML 文件(如 MainWindow.xaml)编译为 BAML (Binary Application Markup Language),这是一种压缩和优化的二进制格式。
运行时,CLR 会加载 BAML 并将其解析回一个对象树。这个过程会:
实例化 XAML 中定义的每一个元素(如 <Window>, <Grid>, <Button>)为 .NET 对象。
设置每个对象的属性(如 Width, Height, Content)。
根据元素的嵌套关系,建立起逻辑树 (Logical Tree)。

对象初始化过程中,会按顺序引发一系列事件

Initialized: 元素已被初始化并从 XAML 中加载了基本属性。此时逻辑树已建立,但尚未进行布局测量和排列。
Loaded: 整个窗口(或页面)已加载完毕,逻辑树完整,并且即将被呈现到屏幕上。这是通常进行最终初始化操作(如加载数据)的地方。