导出 (0) 打印
全部展开

FrameworkElement.Parent 属性

更新:2007 年 11 月

获取此元素的逻辑父级元素。

命名空间:  System.Windows
程序集:  PresentationFramework(在 PresentationFramework.dll 中)

public DependencyObject Parent { get; }
/** @property */
public DependencyObject get_Parent()

public function get Parent () : DependencyObject

不能在 XAML 中设置此属性。

属性值

类型:System.Windows.DependencyObject

此元素的逻辑父级。

如果实例化了一个元素,但未将该元素附加到任何最终将连接到页级别根元素(即应用程序对象)的逻辑树,则 Parent 可能是 null

请注意,根据应用程序功能的不同,元素的逻辑父级可能发生更改,因而保留此属性的值无法反映此更改。通常,您应该恰好在需要该值之前获取该值。

有关逻辑树遍历以及适合使用 Parent 发现父元素的方案的更多信息,请参见 WPF 中的树

在重新设置元素的父级后,属性引擎可能重新计算此元素的所有属性值,因为某些属性通过逻辑树继承值。对绑定适用的 DataContext 在重新设置元素的父级以后也会发生更改。

通常只通过集合操作来完成元素父级的更改,方法是采用专用的添加或移除方法,或者设置元素的内容属性。

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

请注意,当可视化树父级与逻辑树父级不同时,此属性不会报告可视化树父级。对于常规应用程序情况而言,可视化树父级通常不太重要,但对于某些可视化级别情况,可视化树父级可能是必需的父元素。请参见 VisualTreeHelper

下面的示例演示了相应的代码,这些代码检查元素的父级,然后使用父级的属性值设置要匹配的子元素上的属性。在此情况下,这些属性是影响呈现大小的属性。

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);
}


Windows Vista

.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求

.NET Framework

受以下版本支持:3.5、3.0

社区附加资源

添加
显示:
© 2014 Microsoft