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.