FrameworkElement.OnVisualParentChanged(DependencyObject) FrameworkElement.OnVisualParentChanged(DependencyObject) FrameworkElement.OnVisualParentChanged(DependencyObject) FrameworkElement.OnVisualParentChanged(DependencyObject) Method


ビジュアル ツリー内のこの要素の親が変更されたときに呼び出されます。Invoked when the parent of this element in the visual tree is changed. OnVisualParentChanged(DependencyObject) をオーバーライドします。Overrides 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)


DependencyObject DependencyObject DependencyObject DependencyObject

前の親要素。The old parent element. 以前、要素にビジュアル親が存在していなかったことを示す null である可能性があります。May be null to indicate that the element did not have a visual parent previously.


ビジュアル ツリーは、コレクションなどに視覚的にレンダリングされない要素を省略しているため、論理ツリーとは異なる可能性がありますがし、そのテーマとスタイルの合成に基づいていくつかの要素を展開します。The visual tree is potentially different from the logical tree because it omits elements that do not render visually, such as collections, and expands some elements on the basis of their theme and style compositing. 詳細については、「WPF のツリー」を参照してください。For more information, see Trees in WPF.

注意 (継承者)

この仮想メソッドの既定の実装は、新しい親のクエリを実行し、さまざまな初期化イベントを発生させますの初期化の状態に関する内部フラグを設定、FrameworkElementに応じて。The default implementation of this virtual method queries for the new parent, raises various initialization events, and sets internal flags about initialization state of the FrameworkElement as appropriate. 宣言される一連の基本実装を呼び出し、最後に、 UIElement、さらにその基本で呼び出しVisualします。Finally, it calls the successive base implementations as declared by UIElement, which in turn calls its base in Visual. 常にこの動作を保持する基本実装を呼び出す、それ以外の場合別の要素の子として宣言されている場合は、この要素の要素ツリーの動作が期待どおりに。Always call the base implementation to preserve this behavior, otherwise the element tree behavior for this element when declared as a child of another element may not be as expected.

既存のいくつかWindows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)クラスなど、このメソッドをオーバーライド: OnVisualParentChanged(DependencyObject)OnVisualParentChanged(DependencyObject)します。A few existing Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) classes override this method, for example: OnVisualParentChanged(DependencyObject), OnVisualParentChanged(DependencyObject). 最も一般的なシナリオは、新しい親は、特定の型である必要がありますを強制します。The most common scenario is to enforce that the new parent must be a particular type. これは、新しい親には、何らかの型のテストが失敗した場合、例外をスローすることが含まれる可能性があります。This might involve throwing an exception if the new parent failed some manner of type test. このシナリオの特殊なバージョンは、リスト項目およびメニュー項目がなさない、親の外部 visual でそれらを格納する適切なコレクションを所有している実装に存在します。A specialized version of this scenario exists in implementations for list items and menu items, which do not make any sense outside a parent visual that owns an appropriate collection to store them in. デザイナーのシナリオは、一時的に"regular"親要素親の変更に依存する可能性があるため、このような場合は必ずしも例外が発生に注意してください。Note that these cases do not necessarily raise exceptions, because there might be designer scenarios that rely on reparenting elements that are momentarily without their "regular" parents.

このメソッドは、通常は、ルート要素など、特定の要素のオーバーライドもWindowします。This method is also overridden in certain elements that are typically the root element, such as Window. 別のケースがマークアップの明確なルート要素である要素は、自動生成、コンパイル済みの論理ツリーに大きいインフラストラクチャ (などPage)。Another case is elements that are the apparent root element in markup but which autogenerate a greater infrastructure in a compiled logical tree (such as Page). WindowPage実装が意図的に、メソッドをシールします。The Window and Page implementations deliberately seal the method.