FrameworkElement.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
Значение свойства
Логический родительский объект этого элемента.
Примеры
В следующем примере показан код, который проверяет наличие родительского элемента, а затем использует значения свойств родительского элемента для задания свойств дочернего элемента для сопоставления. В этом случае это свойства, влияющие на размер отрисовки.
private void OnUIReady(object sender, System.EventArgs e)
{
LinePane.Width = ((StackPanel)LinePane.Parent).ActualWidth;
LinePane.Height = ((StackPanel)LinePane.Parent).ActualHeight;
DesignerPane.MouseLeave += new System.Windows.Input.MouseEventHandler(DesignerPane_MouseLeave);
this.SizeChanged += new SizeChangedEventHandler(Window1_SizeChanged);
}
Private Sub OnUIReady(ByVal sender As Object, ByVal e As System.EventArgs)
LinePane.Width = (CType(LinePane.Parent, StackPanel)).ActualWidth
LinePane.Height = (CType(LinePane.Parent, StackPanel)).ActualHeight
AddHandler DesignerPane.MouseLeave, AddressOf DesignerPane_MouseLeave
AddHandler SizeChanged, AddressOf Window1_SizeChanged
End Sub
Комментарии
Parent Это может быть null
в случаях, когда был создан экземпляр элемента, но не присоединен к логическому дереву, которое в конечном итоге подключается к корневому элементу уровня страницы или объекту приложения.
Обратите внимание, что логический родительский элемент элемента может изменяться в зависимости от функциональности приложения, и сохранение значения этого свойства не будет отражать это изменение. Как правило, это значение следует получить непосредственно перед его использованием.
Дополнительные сведения о обходе логического дерева и сценариях, в которых целесообразно использовать Parent метод обнаружения родительских элементов, см. в разделе Деревья в WPF.
Подсистема свойств потенциально пересчитает все значения свойств элемента при его повторном наследовании, так как некоторые свойства наследуют значения через логическое дерево. Объект , DataContext который применяется к привязкам, также может изменяться при повторном напарыве элементов.
Изменение родительского элемента обычно выполняется только с помощью операций с коллекциями, с помощью выделенных методов добавления или удаления или установки свойств содержимого элементов.
Наиболее типичным сценарием Parent использования свойства является получение ссылки, а затем получение различных FrameworkElement значений свойств из родительского объекта. Для шаблонов Parent свойство шаблона в конечном итоге будет иметь значение null
. Чтобы пройти этот момент и расширить его до логического дерева, в котором фактически применяется шаблон, используйте .TemplatedParent
Обратите внимание, что это свойство не сообщает родительские элементы визуального дерева в случаях, когда они отличаются от родительских логических деревьев. Родительские элементы визуального дерева обычно не важны для общих вариантов применения, но могут быть нужными родительскими элементами для определенных вариантов визуального уровня. См. раздел VisualTreeHelper.