FrameworkElement.OnVisualParentChanged(DependencyObject) Metoda

Definicja

Wywoływana, gdy obiekt nadrzędny tego elementu w drzewie wizualnym zostanie zmieniony.Invoked when the parent of this element in the visual tree is changed. Zastępuje 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)

Parametry

oldParent
DependencyObject

Stary element nadrzędny.The old parent element. Może być null, aby wskazać, że element nie miał wcześniej elementu nadrzędnego.May be null to indicate that the element did not have a visual parent previously.

Uwagi

Drzewo wizualne może się różnić od drzewa logicznego, ponieważ pomija elementy, które nie renderują wizualizacji, takich jak kolekcje, i rozszerza niektóre elementy na podstawie ich motywu i składania stylów.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. Aby uzyskać więcej informacji, zobacz drzewa w WPF.For more information, see Trees in WPF.

Uwagi dotyczące dziedziczenia

Domyślna implementacja tego zapytania metody wirtualnej dla nowego elementu nadrzędnego, wywołuje różne zdarzenia inicjowania i ustawia wewnętrzne flagi dotyczące stanu inicjalizacji FrameworkElement, zgodnie z potrzebami.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. Na koniec wywołuje kolejne implementacje podstawowe jako zadeklarowane przez UIElement, co z kolei wywołuje jego bazę w Visual.Finally, it calls the successive base implementations as declared by UIElement, which in turn calls its base in Visual. Zawsze Wywołaj implementację podstawową, aby zachować to zachowanie, w przeciwnym razie zachowanie drzewa elementów dla tego elementu, gdy zostanie zadeklarowany jako element podrzędny innego elementu, może nie być zgodne z oczekiwaniami.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.

Kilka istniejących klas Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) przesłania tę metodę, na przykład: 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). Najbardziej typowym scenariuszem jest wymuszenie, że nowy element nadrzędny musi być określonym typem.The most common scenario is to enforce that the new parent must be a particular type. Może to dotyczyć zgłaszania wyjątku, jeśli nowy element nadrzędny nie zakończył się pewnym sposobem testowania typu.This might involve throwing an exception if the new parent failed some manner of type test. Wyspecjalizowana wersja tego scenariusza istnieje w implementacjach elementów list i elementów menu, które nie mają żadnego sensu poza wizualizacją nadrzędną, która jest właścicielem odpowiedniej kolekcji w celu ich przechowywania.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. Należy zauważyć, że te przypadki nie muszą zgłaszać wyjątków, ponieważ mogą istnieć scenariusze projektanta, które polegają na elementach nadrzędnych, które są bezproblemowo bez ich "zwykłych" elementów nadrzędnych.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.

Ta metoda jest również zastępowana w niektórych elementach, które są zwykle elementami głównymi, takimi jak Window.This method is also overridden in certain elements that are typically the root element, such as Window. Innym przypadkiem jest elementy, które są widocznym elementem głównym w znaczniku, ale które automatycznie generują większą infrastrukturę w skompilowanym drzewie logicznym (na przykład 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). Implementacje Window i Page celowo zapieczętować metodę.The Window and Page implementations deliberately seal the method.

Dotyczy

Zobacz też