FrameworkElement.Parent Свойство

Определение

Получает логический родительский элемент этого элемента.Gets the logical parent element of this element.

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

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

Логический родительский объект этого элемента.This element's logical parent.

Примеры

В следующем примере показан код, который проверяет наличие родителя элемента, а затем использует значения свойств из родительского элемента, чтобы задать для него свойства.The following example shows code that checks for an element's parent, and then uses property values from the parent to set properties on the child element to match. В этом случае это свойства, влияющие на размер отрисовки.In this case these are properties that affect the rendering size.

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 may be null in cases where an element was instantiated, but is not attached to any logical tree that eventually connects to the page level root element, or the application object.

Обратите внимание, что логический родительский элемент элемента может измениться в зависимости от функциональности приложения, а значение этого свойства не будет отражать это изменение.Note that the logical parent of an element can potentially change depending on your application's functionality, and keeping the value of this property will not reflect that change. Как правило, это значение следует получить непосредственно перед тем, как оно понадобится.You typically should get the value immediately before you need it.

Дополнительные сведения о прохождении логического дерева см. в разделе деревья в WPF , а также в сценариях, где используется Parent в качестве метода обнаружения родительского элемента.See Trees in WPF for more information about logical tree traversal, and the scenarios where using Parent as a technique of parent element discovery is appropriate.

Подсистема свойств может повторно вычислять все значения свойств элемента при его повторном дочернем элементе, поскольку некоторые свойства наследуют значения через логическое дерево.The property engine will potentially recalculate all property values of an element when it is reparented, because some properties inherit values through the logical tree. DataContext, применяемые к привязкам, также могут изменяться, когда элементы переносятся в родительский элемент.The DataContext that applies for bindings can also change when elements are reparented.

Изменение родителя элемента обычно выполняется только посредством манипуляций с коллекциями с помощью выделенных методов Add или Remove или путем установки свойств содержимого элементов.Changing an element's parent is typically only done through manipulation of collections, by using dedicated add or remove methods, or through setting content properties of elements.

Наиболее типичным сценарием использования свойства Parent является получение ссылки и получение различных значений свойств FrameworkElement из родительского элемента.The most typical scenario for using the Parent property is to obtain a reference and then get various FrameworkElement property values from the parent. Для шаблонов Parent шаблона будет null.For templates, the Parent of the template eventually will be null. Чтобы перейти к этому моменту и расширить логическое дерево, где фактически применяется шаблон, используйте TemplatedParent.To get past this point and extend into the logical tree where the template is actually applied, use TemplatedParent.

Обратите внимание, что это свойство не сообщает родителей визуального дерева в тех случаях, когда они отличаются от родителей логического дерева.Note that this property does not report visual tree parents in cases where these vary from the logical tree parents. Родители визуального дерева обычно не важны для общих случаев приложений, но могут быть нужными родительскими элементами для определенных вариантов визуального уровня.Visual tree parents are not typically important for general application cases but may be the desired parent elements for certain visual level cases. См. раздел VisualTreeHelper.See VisualTreeHelper.

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

Дополнительно