語言

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)。 Window與Page實作刻意封閉了這個方法。

適用於

另請參閱