FrameworkElement.OnApplyTemplate Method

Definition

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 ()

Remarks

This method has no default implementation.

Templates are the section of an element's completed visual tree that comes from the Template property of a Style that is applied for the element. For more information, see Styling and Templating.

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).

Applies to