FrameworkContentElement.Parent Свойство

Определение

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

C#
public System.Windows.DependencyObject Parent { get; }

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

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

Примеры

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

C#
// 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);
}

Комментарии

Обратите внимание, что логический родительский элемент элемента может изменяться в зависимости от функциональных возможностей приложения, и сохранение значения этого свойства не будет отражать это изменение. Как правило, значение следует получить непосредственно перед тем, как оно вам понадобится.

Дополнительные сведения о обходе логических деревьев и сценариях, в которых следует использовать этот подход к обнаружению элементов, см. в статье Деревья в WPF .

Система свойств потенциально пересчитывает все значения свойств элемента при его повторном родовании, так как некоторые свойства наследуют значения через логическое дерево. Объект , DataContext который применяется к привязкам, также может изменяться при повторном родовывыделии элементов.

Изменение родительского элемента обычно выполняется только с помощью операций с коллекциями, с помощью выделенных методов добавления или удаления или установки свойств содержимого элементов.

Наиболее типичный сценарий использования Parent свойства — получение ссылки, а затем получение различных FrameworkContentElement значений свойств из родительского элемента. Для шаблонов Parent значение шаблона в конечном итоге будет иметь значение null. Чтобы пройти этот момент и распространиться на логическое дерево, в котором фактически применяется шаблон, используйте .TemplatedParent

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

Продукт Версии
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

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