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)

Параметры

oldParent
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). Window И Page реализаций намеренно запечатать метод.The Window and Page implementations deliberately seal the method.

Применяется к

Дополнительно