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

Definición

Se invoca cuando se cambia el elemento primario de este elemento en el árbol visual.Invoked when the parent of this element in the visual tree is changed. Invalida 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)

Parámetros

oldParent
DependencyObject DependencyObject DependencyObject DependencyObject

Elemento primario anterior.The old parent element. Puede ser null para indicar que el elemento no tenía previamente un elemento primario visual.May be null to indicate that the element did not have a visual parent previously.

Comentarios

El árbol visual es potencialmente diferente del árbol lógico porque omite elementos que no se representan visualmente, como las colecciones, y expande algunos elementos en función de su diseño de tema y estilo.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. Para obtener más información, consulte Árboles en WPF.For more information, see Trees in WPF.

Notas a los desarrolladores de herederos

La implementación predeterminada de este método virtual consulta el nuevo elemento primario, genera diversos eventos de inicialización y establece marcas internas sobre el FrameworkElement estado de inicialización de según corresponda.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. Finalmente, llama a las implementaciones de base sucesivas declaradas por UIElement, que a su vez llama a su base en. VisualFinally, it calls the successive base implementations as declared by UIElement, which in turn calls its base in Visual. Llame siempre a la implementación base para conservar este comportamiento; de lo contrario, el comportamiento del árbol de elementos para este elemento cuando se declara como elemento secundario de otro elemento puede no ser el esperado.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.

Algunas clases existentes Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) invalidan este método, por ejemplo 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). El escenario más común es aplicar que el nuevo elemento primario debe ser un tipo determinado.The most common scenario is to enforce that the new parent must be a particular type. Esto puede implicar que se produzca una excepción si el nuevo elemento primario no pudo realizar una prueba de tipo.This might involve throwing an exception if the new parent failed some manner of type test. Existe una versión especializada de este escenario en implementaciones para elementos de lista y elementos de menú, que no tienen sentido fuera de un objeto visual primario que posee una colección adecuada para almacenarlos en.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. Tenga en cuenta que estos casos no generan necesariamente excepciones, ya que puede haber escenarios de diseñador que se basan en la reutilización de elementos primarios que se producen momentáneamente sin sus elementos primarios "normales".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.

Este método también se invalida en ciertos elementos que normalmente son el elemento raíz, como Window.This method is also overridden in certain elements that are typically the root element, such as Window. Otro caso son los elementos que son el elemento raíz aparente en el marcado, pero que generan automáticamente una infraestructura mayor en un árbol lógico compilado Page(como).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). Las Window implementaciones de y Page sellan deliberadamente el método.The Window and Page implementations deliberately seal the method.

Se aplica a

Consulte también: