If the Style property is set in XAML, it will be applied as soon as the end tag is parsed.
As soon as Style property is set.
Built-in Style (from generic.xaml) applied
As soon as the end tag is parsed, after the explicit Style (if any) has been applied. Will not override explicit Style.
When the control enters the tree. Will not override explicit Style.
Properties set
When the attributes are parsed.
When you set them.
Loaded event
Posted when the element is been added to the tree. Fired before the next frame. Happens before layout.
Same.
Template applied (i.e. control's visual are created from the Template)
In the Measure pass of layout. The Template property will be applied if the control has no visual tree. The control starts life with no visual tree, and the visual tree will be cleared when the Template property is set. You can also callApplyTemplate yourself.
Same.
OnApplyTemplate called
Whenever the Template is applied. It is not necessary to call the base OnApplyTemplate for the Template to be applied, but inherited types might be relying on it for their implementations.
Same.
Visuals first available
In OnApplyTemplate. Use GetTemplateChild.
Same.
MeasureOverride called
In the Measure pass of layout. If the Template was expanded during this Measure pass, MeasureOverride will be called after the Template has been expanded.
Same.
ArrangeOverride called
In the Arrange pass of layout, which occurs after theMeasure pass.
Same.
SizeChanged event
After the Measure and Arrange passes have completed.