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 tiene un elemento primario visual previamente.
Comentarios
El árbol visual es potencialmente diferente del árbol lógico porque omite elementos que no se representan visualmente, como colecciones, y expande algunos elementos sobre la base de su composición de temas y estilos. Para obtener más información, consulte Á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, el comportamiento del árbol de elementos para este elemento cuando se declara como elemento secundario de otro elemento puede no ser el esperado.
Algunas clases de Windows Presentation Foundation existentes (WPF) reemplazan 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 ejecución de una excepción si el nuevo elemento primario produjo un error de alguna manera 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 primarios que son momentáneamente sin sus elementos primarios "normales".
Este método también se invalida en ciertos elementos que suelen ser 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 .