FrameworkElement.OnVisualParentChanged(DependencyObject) Metoda

Definicja

Wywoływane po zmianie elementu nadrzędnego tego elementu w drzewie wizualnym. Zastępuje metodę 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. Może wskazywać null , że element nie miał wcześniej elementu nadrzędnego wizualizacji.

Uwagi

Drzewo wizualne różni się potencjalnie od drzewa logicznego, ponieważ pomija elementy, które nie są renderowane wizualnie, takie jak kolekcje, i rozszerza niektóre elementy na podstawie ich motywu i kompositingu stylu. Aby uzyskać więcej informacji, zobacz Drzewa w WPF.

Uwagi dotyczące dziedziczenia

Domyślna implementacja tej metody wirtualnej wykonuje zapytania dotyczące nowego elementu nadrzędnego, zgłasza różne zdarzenia inicjowania i ustawia wewnętrzne flagi dotyczące stanu inicjowania FrameworkElement zgodnie z potrzebami. Na koniec wywołuje kolejne implementacje podstawowe zadeklarowane przez UIElementelement , co z kolei wywołuje bazę w elemecie Visual. Zawsze wywołaj implementację podstawową, aby zachować to zachowanie. W przeciwnym razie zachowanie drzewa elementów dla tego elementu, gdy zostanie zadeklarowane jako element podrzędny innego elementu, może nie być zgodnie z oczekiwaniami.

Kilka istniejących klas Windows Presentation Foundation (WPF) zastępuje tę metodę, na przykład: OnVisualParentChanged(DependencyObject), OnVisualParentChanged(DependencyObject). Najczęstszym scenariuszem jest wymuszenie, że nowy element nadrzędny musi być określonym typem. Może to obejmować zgłoszenie wyjątku, jeśli nowy element nadrzędny nie powiódł się w jakiś sposób testu typu. Wyspecjalizowana wersja tego scenariusza istnieje w implementacjach elementów listy i elementów menu, które nie mają sensu poza wizualizacją nadrzędną, która jest właścicielem odpowiedniej kolekcji do ich przechowywania. Należy pamiętać, że te przypadki niekoniecznie zgłaszają wyjątki, ponieważ mogą istnieć scenariusze projektanta, które polegają na reparentowaniu elementów, które są chwilowo bez ich "zwykłych" elementów nadrzędnych.

Ta metoda jest również zastępowana w niektórych elementach, które są zwykle elementem głównym, takim jak Window. Innym przypadkiem są elementy, które są widocznym elementem głównym w znacznikach, ale które automatycznie generuje większą infrastrukturę w skompilowanym drzewie logicznym (na przykład Page). Implementacje Window i Page celowo uszczelniają metodę .

Dotyczy

Zobacz też