FrameworkElement.OnVisualParentChanged(DependencyObject) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Se invoca cuando se cambia el elemento primario de este elemento en el árbol visual. Invalida 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
Elemento primario anterior. Puede ser null para indicar que el elemento no tenía previamente un elemento primario visual.
Comentarios
El árbol visual es potencialmente diferente del árbol lógico porque omite los elementos que no se representan visualmente, como colecciones, y expande algunos elementos basándose en su composición de temas y estilos. Para obtener más información, vea Árboles en WPF.
Notas a los desarrolladores de herederos
La implementación predeterminada de este método virtual consulta para el nuevo elemento primario, genera varios eventos de inicialización y establece marcas internas sobre el estado de inicialización de según FrameworkElement corresponda. Por último, llama a las implementaciones base sucesivas declaradas por UIElement, que a su vez llama a su base en Visual. Llame siempre a la implementación base para conservar este comportamiento; de lo contrario, es posible que el comportamiento del árbol de elementos para este elemento cuando se declare como elemento secundario de otro elemento no sea el esperado.
Algunas clases de Windows Presentation Foundation (WPF) existentes invalidan este método, por ejemplo: OnVisualParentChanged(DependencyObject), OnVisualParentChanged(DependencyObject). El escenario más común es aplicar que el nuevo elemento primario debe ser un tipo determinado. Esto podría implicar la iniciación de una excepción si el nuevo elemento primario produjo algún error en alguna forma de prueba de tipo. 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. Tenga en cuenta que estos casos no generan necesariamente excepciones, ya que puede haber escenarios de diseñador que se basan en elementos reparentes que son momentáneamente sin sus elementos primarios "normales".
Este método también se invalida en determinados elementos que normalmente son el elemento raíz, como Window. Otro caso es 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 (como Page). Las Window implementaciones y Page sellan deliberadamente el método .