通过


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

注解

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

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

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

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

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

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

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

适用于

另请参阅