Element. On Apply Template Method
When overridden in a derived class, is invoked whenever application code or internal processes call ApplyTemplate().
public: virtual void OnApplyTemplate();
public virtual void OnApplyTemplate ();
abstract member OnApplyTemplate : unit -> unit override this.OnApplyTemplate : unit -> unit
Public Overridable Sub OnApplyTemplate ()
This method has no default implementation.
Notes to Inheritors
Derived classes of FrameworkElement can use this method as a notification for a variety of possible scenarios:
You can call your own implementation of code that builds the remainder of an element visual tree.
You can run code that relies on the visual tree from templates having been applied, such as obtaining references to named elements that came from a template.
You can introduce services that only make sense to exist after the visual tree from templates is complete.
You can set states and properties of elements within the template that are dependent on other factors. For instance, property values might only be discoverable by knowing the parent element, or when a specific derived class uses a common template.
Implementers should always call the base implementation before their own implementation. FrameworkElement itself has no default implementation, but intervening classes might.
Control offers a similar override, OnTemplateChanged(ControlTemplate, ControlTemplate).