FrameworkContentElement.Parent プロパティ

定義

この要素の論理ツリー内での親を取得します。Gets the parent in the logical tree for this element.

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

プロパティ値

この要素の論理上の親。The logical parent for this element.

次の例では、TextPointerParent が特定の型であるかどうかを確認します。The following example checks to see whether the Parent of a TextPointer is of a particular type.

// Traverse content in forward direction until the position is immediately after the opening 
// tag of a Run element, or the end of content is encountered.
while (position != null)
{
    // Is the current position just after an opening element tag?
    if (position.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.ElementStart)
    {
        // If so, is the tag a Run?
        if (position.Parent is Run)
            break;
    }

    // Not what we're looking for; on to the next position.
    position = position.GetNextContextPosition(LogicalDirection.Forward);
}
' Traverse content in forward direction until the position is immediately after the opening 
' tag of a Run element, or the end of content is encountered.
Do While position IsNot Nothing
    ' Is the current position just after an opening element tag?
    If position.GetPointerContext(LogicalDirection.Backward) = TextPointerContext.ElementStart Then
        ' If so, is the tag a Run?
        If TypeOf position.Parent Is Run Then
            Exit Do
        End If
    End If

    ' Not what we're looking for on to the next position.
    position = position.GetNextContextPosition(LogicalDirection.Forward)
Loop

注釈

要素の論理上の親は、アプリケーションの機能によって変わる可能性があります。このプロパティの値を維持しても、その変更は反映されません。Note that the logical parent of an element can potentially change depending on your application functionality, and keeping the value of this property will not reflect that change. 通常は、必要な値をすぐに取得する必要があります。You typically should get the value immediately before you need it.

論理ツリーの走査の詳細については、「 WPF のツリー 」を参照してください。また、要素の検出にこのアプローチを採用するシナリオも適しています。See Trees in WPF for more information about traversing logical trees, and the scenarios where taking this approach towards element discovery is appropriate.

プロパティシステムは、親のときに、要素のすべてのプロパティ値を再計算する可能性があります。これは、一部のプロパティが論理ツリーを通じて値を継承するためです。The property system will potentially recalculate all property values of an element when it is reparented, because some properties inherit values through the logical tree. バインドに適用される DataContext は、要素が親されたときにも変更できます。The DataContext that applies for bindings can also change when elements are reparented.

通常、要素の親を変更するには、専用の add メソッドまたは remove メソッドを使用するか、要素のコンテンツプロパティを設定することによって、コレクションの操作を行います。Changing an element's parent is typically only done through manipulation of collections, by using dedicated add or remove methods, or through setting content properties of elements.

Parent プロパティを使用する最も一般的なシナリオは、参照を取得し、親からさまざまな FrameworkContentElement プロパティ値を取得することです。The most typical scenario for using the Parent property is to obtain a reference and then get various FrameworkContentElement property values from the parent. テンプレートの場合は、最終的にテンプレートの Parentnullされます。For templates, the Parent of the template eventually will be null. この点を超えて、テンプレートが実際に適用される論理ツリーに拡張するには、TemplatedParentを使用します。To get past this point and extend into the logical tree where the template is actually applied, use TemplatedParent.

適用対象

こちらもご覧ください