FrameworkContentElement.Parent 属性

定义

获取此元素的逻辑树中的父级。

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

属性值

DependencyObject

此元素的逻辑父级。

示例

以下示例检查某一TextPointer类型的值是否Parent为特定类型。

// 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

注解

请注意,元素的逻辑父级可能会根据应用程序功能而更改,并且保留此属性的值不会反映该更改。 通常,在需要该值之前,应立即获取该值。

有关遍历逻辑树的详细信息,请参阅 WPF 中的树 ,以及将此方法用于元素发现的方案是合适的。

属性系统可能会在重新父级时重新计算元素的所有属性值,因为某些属性通过逻辑树继承值。 DataContext应用于绑定的元素在重新父级时也可以更改。

更改元素的父元素通常只能通过操作集合、使用专用添加或删除方法,或通过设置元素的内容属性来完成。

使用属性 Parent 的最典型方案是获取引用,然后从父级获取各种 FrameworkContentElement 属性值。 对于模板, Parent 模板最终将是 null。 若要超过此点并扩展到实际应用模板的逻辑树,请使用 TemplatedParent

适用于

另请参阅