FrameworkElement.GetTemplateChild(String) メソッド

定義

インスタンス化された ControlTemplate のビジュアル ツリー内にある名前付き要素を返します。Returns the named element in the visual tree of an instantiated ControlTemplate.

protected public:
 System::Windows::DependencyObject ^ GetTemplateChild(System::String ^ childName);
protected internal System.Windows.DependencyObject GetTemplateChild (string childName);
member this.GetTemplateChild : string -> System.Windows.DependencyObject
Protected Friend Function GetTemplateChild (childName As String) As DependencyObject

パラメーター

childName
String

検索する子の名前。Name of the child to find.

戻り値

要求された要素。The requested element. 要求した名前の要素が存在しない場合は null になります。May be null if no element of the requested name exists.

注釈

WPFWPF のテンプレートには、自己完結型の名前スコープがあります。Templates in WPFWPF have a self-contained namescope. これは、テンプレートが再使用されるためです。また、1つのコントロールの複数のインスタンスがテンプレートをインスタンス化している場合、テンプレートで定義されているすべての名前は一意のままにできません。This is because templates are re-used, and any name defined in a template cannot remain unique when multiple instances of a control each instantiate its template. GetTemplateChild メソッドを呼び出して、インスタンス化された後にテンプレートから取得したオブジェクトへの参照を返します。Call the GetTemplateChild method to return references to objects that come from the template after it is instantiated. FrameworkElement.FindName メソッドを使用してテンプレートから項目を検索することはできません。これは FrameworkElement.FindName がより一般的なスコープで動作し、適用後に ControlTemplate クラス自体とインスタンス化されたテンプレートの間に接続がないためです。You cannot use the FrameworkElement.FindName method to find items from templates because FrameworkElement.FindName acts in a more general scope, and there is no connection between the ControlTemplate class itself and the instantiated template once it is applied.

FrameworkTemplate.FindName は、このメソッドと同じ機能を提供します。FrameworkTemplate.FindName supplies the same function as this method. FrameworkTemplate.FindName は保護されるのではなくパブリックです。また、要素内のテンプレートにアクセスしてその中の名前付き項目を検索できるようにする正しい名前スコープの考慮事項を使用します。FrameworkTemplate.FindName is public instead of protected, and it uses correct name-scoping considerations that allow it to access the template within an element and find named items within it. 親コントロールの外部にある要素を取得する必要がある場合は、FrameworkTemplate.FindName を使用します。Use FrameworkTemplate.FindName when you need to get an element outside of its parent control.

適用対象

こちらもご覧ください