Поделиться через


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

Значение свойства

Логический родительский объект для этого элемента.

Примеры

В следующем примере проверяется, имеет ли ParentTextPointer элемент объекта определенный тип.

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

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

См. также раздел