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