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.

Примеры

В следующем примере проверяется, относится ли Parent TextPointer к определенному типу.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. Для шаблонов Parent шаблона будет null.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.

Применяется к

Дополнительно