FrameworkElement.OnVisualParentChanged(DependencyObject) 方法

定义

在可视化树中此元素的父级发生更改时调用。 重写 OnVisualParentChanged(DependencyObject)

protected public:
 override void OnVisualParentChanged(System::Windows::DependencyObject ^ oldParent);
protected internal override void OnVisualParentChanged(System.Windows.DependencyObject oldParent);
override this.OnVisualParentChanged : System.Windows.DependencyObject -> unit
Protected Friend Overrides Sub OnVisualParentChanged (oldParent As DependencyObject)

参数

oldParent
DependencyObject

旧的父元素。 可能 null 指示该元素以前没有视觉父级。

注解

可视化树可能不同于逻辑树,因为它省略不直观呈现的元素(如集合),并根据其主题和样式组合扩展某些元素。 有关详细信息,请参阅 WPF 中的树

继承者说明

此虚拟方法针对新父级的默认实现查询,引发各种初始化事件,并根据需要设置有关初始化状态 FrameworkElement 的内部标志。 最后,它按声明 UIElement调用连续基实现,进而调用其基 Visual。 始终调用基本实现来保留此行为,否则当声明为另一个元素的子元素时,此元素的元素树行为可能不如预期。

一些现有的Windows Presentation Foundation(WPF)类替代此方法,例如:OnVisualParentChanged(DependencyObject)OnVisualParentChanged(DependencyObject)。 最常见的方案是强制新父级必须是特定类型。 如果新父级未通过某种类型的测试,则这可能引发异常。 此方案的专用版本存在于列表项和菜单项的实现中,在拥有适当集合的父视觉对象之外没有任何意义来存储它们。 请注意,这些情况不一定引发异常,因为可能存在依赖于暂时没有其“常规”父级的元素的设计器方案。

此方法在通常为根元素的某些元素中被重写,例如 Window。 另一种情况是标记中的明显根元素,但在编译的逻辑树(例如 Page)中自动生成更大的基础结构的元素。 和WindowPage实现故意密封该方法。

适用于

另请参阅