RemoveLogicalChild (Método)
Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés
Esta documentación está archivada y no tiene mantenimiento.

FrameworkElement.RemoveLogicalChild (Método)

Quita el objeto proporcionado del árbol lógico de este elemento. FrameworkElement actualiza los punteros primarios correspondientes del árbol lógico para mantenerlos sincronizados con esta eliminación.

Espacio de nombres:  System.Windows
Ensamblado:  PresentationFramework (en PresentationFramework.dll)

protected internal void RemoveLogicalChild(
	Object child
)

Parámetros

child
Tipo: System.Object
Elemento que se va a quitar.

Use este método para la implementación de colecciones en los objetos que representan elementos secundarios lógicos de un elemento. Esto se podría hacer en captadores o establecedores de propiedad, controladores de clases de los eventos Changed, constructores o dentro de los propios tipos de colección.

Para los autores de controles, no se recomienda manipular el árbol lógico en este nivel, a menos que ninguno de los modelos de contenido para las clases de control base disponibles sea adecuado. Considere la creación de subclases en el nivel de ContentControl, ItemsControl y HeaderedItemsControl. Estas clases proporcionan un modelo de contenido con una exigencia concreta de elementos secundarios lógicos a través de las APIs dedicadas, además de admitir otras características típicamente deseables en un control WPF, como crear estilos a través de plantillas.

En el ejemplo siguiente se implementa una propiedad Child en un objeto FrameworkElement personalizado que hace su propia implementación visual. El establecedor de la propiedad se diseñó de modo que si el valor cambia, el valor anterior se quita del árbol lógico, así como una colección visual específica de la clase. Los valores se almacenan en memoria caché y, a continuación, el nuevo valor se agrega al árbol lógico del marco WPF estándar y a la colección visual personalizada.


public virtual UIElement Child
{
    get
    {
        return _child;
    }
    set
    {
        if (_child != value)
        {
            //need to remove old element from logical tree
            if (_child != null)
            {
                OnDetachChild(_child);
                RemoveLogicalChild(_child);
            }

            _vc.Clear();

            if (value != null)
            {
                //add to visual
                _vc.Add(value);
                //add to logical
                AddLogicalChild(value);
            }

            //always add the overlay child back into the visual tree if its set
            if (_overlayVisual != null)
                _vc.Add(_overlayVisual);

            //cache the new child
            _child = value;

            //notify derived types of the new child
            if (value != null)
                OnAttachChild(_child);

            InvalidateMeasure();
        }
    }
}


.NET Framework

Compatible con: 4, 3.5, 3.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Mostrar:
© 2016 Microsoft