silverlight 控件初始化和布局
https://msdn.microsoft.com/zh-cn/library/dd351483(v=vs.95).aspx
控件初始化和布局
当您创建控件时,务必了解初始化和布局事件和方法的顺序。 这样,您就知道用于改写的正确方法或要处理的正确事件以获得特定的效果。 通常,可以构造 Silverlight 控件并设置其属性;接着创建其可视化表示形式或可视化树;然后该控件经历整个布局过程。 下表列出了在控件创建和布局期间所设置的属性以及发生的事件和方法。 属性、方法和事件按其发生顺序列出。
控件属性、方法或事件 |
发生于 |
更多信息 |
---|---|---|
构造控件。 |
在 XAML 中,当对控件声明的开始标记进行分析时。 - 或 - 在代码中,当显式调用构造函数时。 |
|
设置控件属性。 |
在 XAML 中,当对控件的 XAML 属性的特性进行分析时。 - 或 - 在代码中,当显式设置属性时。 |
|
应用了 Style 属性(显式样式)。 |
在 XAML 中,当 对控件的结束标记进行分析后。 - 或 - 在代码中,当显式设置了 Style 属性时。 |
|
应用了 Style 属性(generic.xaml 中的默认样式)。 |
当对控件的结束标记进行分析时,在应用了显式样式(如果有)之后。 默认样式将不改写先前设置的显式样式。 |
|
Loaded 事件发生。 |
当将元素添加到可视化树中时。 在呈现下一帧之前发生。 这在执行任何布局操作之前发生。 |
|
应用了模板(根据模板创建控件的可视化元素)。 |
在布局的测量处理过程中。 如果设置了 Template 属性的值,则该值将展开以提供可视化树。 最初创建此控件时并没有可视化树,并且当设置 Template 属性时清除可视化树。 还可以调用ApplyTemplate 以展开模板并为控件创建可视化树(如果控件没有可视化树)。 |
|
调用了 OnApplyTemplate 方法。 |
只要应用了控件的模板。 应用模板时并非必须调用基本 OnApplyTemplate;但是,继承的类型可能依赖于它来进行实现。 |
|
代码中控件可视化元素变得可供操纵。 |
在 OnApplyTemplate 中。 调用 GetTemplateChild 并传递要检索的模板部分的名称。 |
|
调用了 MeasureOverride 方法。 |
在第一个布局处理过程中,当测量所有子项时。 如果在此测量处理过程中展开了此模板,则在展开模板后将调用 MeasureOverride。 |
|
调用了 ArrangeOverride 方法。 |
在排列布局处理过程(在测量处理过程之后发生)中。 |
|
引发 SizeChanged 事件。 |
在这两个布局处理过程(测量和排列)都已完成之后。 |
|
引发 LayoutUpdated 事件。 |
如果发生 SizeChanged 事件。 |