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

注解

Parentnull 实例化元素但未附加到最终连接到页面级别根元素或应用程序对象的任何逻辑树的情况下。

请注意,元素的逻辑父级可能会根据应用程序的功能而更改,并且保留此属性的值不会反映该更改。 通常,在需要该值之前,应立即获取该值。

有关逻辑树遍历的详细信息以及用作Parent父元素发现技术的方案,请参阅 WPF 中的树

当元素重新父级时,属性引擎可能会重新计算元素的所有属性值,因为某些属性通过逻辑树继承值。 DataContext应用于绑定的元素在重新父级时也可以更改。

更改元素的父元素通常只能通过操作集合、使用专用添加或删除方法,或通过设置元素的内容属性来完成。

使用属性 Parent 的最典型方案是获取引用,然后从父级获取各种 FrameworkElement 属性值。 对于模板, Parent 模板最终将是 null。 若要超过此点并扩展到实际应用模板的逻辑树,请使用 TemplatedParent

请注意,如果这些父级与逻辑树父级不同,则此属性不会报告可视化树父级。 对于常规应用程序案例来说,可视化树父级通常并不重要,但对于某些视觉级别事例,可能为所需的父元素。 请参阅 VisualTreeHelper

适用于

另请参阅