FrameworkElement.TemplatedParent プロパティ


この要素の親テンプレートへの参照を取得します。Gets a reference to the template parent of this element. このプロパティは、要素がテンプレートによって作成されていない場合は無効です。This property is not relevant if the element was not created through a template.

 property System::Windows::DependencyObject ^ TemplatedParent { System::Windows::DependencyObject ^ get(); };
public System.Windows.DependencyObject TemplatedParent { get; }
member this.TemplatedParent : System.Windows.DependencyObject
Public ReadOnly Property TemplatedParent As DependencyObject



この要素が作成される原因となった FrameworkTemplateVisualTree が属する要素。The element whose FrameworkTemplateVisualTree caused this element to be created. 多くの場合、この値は nullです。This value is frequently null.


TemplatedParent は、多くの場合、アプリケーションマークアップまたはコードで作成されるオブジェクトに対して null ます。TemplatedParent is frequently null for objects that are created in your application markup or code. これは、テンプレートを使用せずに、これらのオブジェクトを直接作成するためです。This is because you create those objects directly, not via a template. ルートまたは一般的な名前参照によって論理ツリーをウォークすることによって取得されたオブジェクト参照は、テンプレートからのものではありません。Object references obtained by walking the logical tree from the root, or by typical name references, do not come from a template.

TemplatedParentnull されない可能性があるケースとしては、ヒットテスト、特定の低レベルの入力イベントのイベント処理、VisualTreeHelperを使用したビジュアルツリーのウォーク、テンプレートからの要素を返す可能性がある列挙子の操作などがあります。Cases where TemplatedParent might not be null include operations such as hit-testing, event handling for certain low-level input events, walking the visual tree with VisualTreeHelper, or working with enumerators, which might return elements that came from templates. また、既存の FrameworkTemplate に対して FindName を明示的に呼び出し、返されたオブジェクトを操作する場合もあります。Another case is if you specifically call FindName against an existing FrameworkTemplate and are work with the returned object.

テンプレートは実際には共有オブジェクトであり、テンプレートの内容は一度だけ作成されます。Templates are actually shared objects, where the contents of the template are created only once. したがって、テンプレートからの要素へのオブジェクト参照を取得した場合、見かけ上の論理ツリーがページルートに届かないことがあります。Therefore, if you obtain an object reference to an element that came from a template, you may find that the apparent logical tree does not reach to the page root. このようなテンプレート参照をページの論理ツリーに接続するには、TemplatedParent 値を取得し、必要に応じてその要素ツリー内を移動し続ける必要があります。In order to connect such a template reference to the page's logical tree, you should get the TemplatedParent value and continue to navigate that element tree as desired.