导出 (0) 打印
全部展开
此文章由人工翻译。 将光标移到文章的句子上,以查看原文。
译文
原文

FrameworkElement.Parent 属性

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

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

public DependencyObject Parent { get; }

属性值

类型: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);
}


.NET Framework

受以下版本支持:4、3.5、3.0

.NET Framework Client Profile

受以下版本支持:4、3.5 SP1

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2

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

社区附加资源

添加
Microsoft 正在进行一项网上调查,以了解您对 MSDN 网站的意见。 如果您选择参加,我们将会在您离开 MSDN 网站时向您显示该网上调查。

是否要参加?
显示:
© 2014 Microsoft