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
Продукт | Версии |
---|---|
.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 |
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв: