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

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

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 в случаях, когда был создан экземпляр элемента, но он не присоединен к логическому дереву, который в конечном итоге подключается к корневому элементу уровня страницы или к объекту приложения.

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

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

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

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

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

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

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

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