FrameworkElement.OnApplyTemplate メソッド


派生クラスでオーバーライドされると、アプリケーション コードまたは内部プロセスが ApplyTemplate()を呼び出すたびに呼び出されます。When overridden in a derived class, is invoked whenever application code or internal processes call ApplyTemplate().

 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.

テンプレートは、要素に適用される Style のテンプレートプロパティから取得される、要素の完了したビジュアルツリーのセクションです。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.

注意 (継承者)

FrameworkElement の派生クラスでは、次のようなさまざまなシナリオで、このメソッドを通知として使用できます。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 自体には既定の実装はありませんが、介在するクラスが考えられます。FrameworkElement itself has no default implementation, but intervening classes might.

Control には、OnTemplateChanged(ControlTemplate, ControlTemplate)と同様のオーバーライドが用意されています。Control offers a similar override, OnTemplateChanged(ControlTemplate, ControlTemplate).