Compartir a través de


Patrón de control ExpandCollapse

Describe instrucciones y convenciones para implementar IExpandCollapseProvider, incluida información sobre propiedades, métodos y eventos. El patrón de control ExpandCollapse se usa para admitir controles que se expanden visualmente para mostrar más contenido y contraer para ocultar contenido.

Para obtener ejemplos de controles que implementan este patrón de control, vea tipos de control y sus patrones de control admitidos.

Este tema contiene las secciones siguientes.

Directrices y convenciones de implementación

Al implementar el patrón de control ExpandCollapse, tenga en cuenta las siguientes directrices y convenciones:

  • Los controles agregados, creados con objetos secundarios que proporcionan la funcionalidad de expansión o contracción de la interfaz de usuario, deben admitir el patrón de control ExpandCollapse, mientras que sus elementos secundarios no. Por ejemplo, un control de cuadro combinado se crea con una combinación de controles de cuadro de lista, botón y edición, pero solo es el cuadro combinado primario que debe admitir el patrón de control ExpandCollapse.

    Nota

    Una excepción es el control de menú, que es un agregado de objetos de elemento de menú individuales. Los objetos de elemento de menú pueden admitir el patrón de control ExpandCollapse, pero el control de menú primario no puede. Se aplica una excepción similar a los controles de árbol y elemento de árbol.

     

  • Cuando el IExpandCollapseProvider::ExpandCollapseState de un control se establece en ExpandCollapseState_LeafNode, cualquier funcionalidad de ExpandCollapse está inactiva actualmente para el control y la única información que se puede obtener mediante este patrón de control es la ExpandCollapseState. Si posteriormente se agregan objetos secundarios, se activa la ExpandCollapseState y se activa funcionalidad de ExpandCollapse.

  • expandCollapseState hace referencia solo a la visibilidad de los objetos secundarios inmediatos; no hace referencia a la visibilidad de todos los objetos descendientes.

  • función IExpandCollapseProvider::Expand y Contraer funcionalidad es específica del control. A continuación se muestran ejemplos de este comportamiento.

    • El menú personal de Office puede ser un elemento de menú de tres estados ("Expandido", "Collapsed" y "ParcialmenteExpanded") donde se llama al control para especificar el estado que se debe adoptar cuando se llama a Expandir o Contraer.
    • Llamar a Expandir en un elemento de árbol puede mostrar todos los descendientes o solo elementos secundarios inmediatos.
    • Si llama a Expandir o Contraer en un control mantiene el estado de sus descendientes, se debe enviar un evento de cambio de visibilidad, no un evento de cambio de estado. Si el control primario no mantiene el estado de sus descendientes cuando se contrae, el control puede destruir todos los descendientes que ya no son visibles y generar un evento destruido; o bien, puede cambiar elExpandCollapseState para cada descendiente y generar un evento de cambio de visibilidad.
  • Para garantizar la navegación, es conveniente que un objeto esté en el árbol de Automatización de la interfaz de usuario de Microsoft (con el estado de visibilidad adecuado) independientemente de sus elementos primarios ExpandCollapseState. Si los descendientes se generan a petición, solo pueden aparecer en el árbol de automatización de la interfaz de usuario después de mostrarse por primera vez o solo mientras están visibles.

Miembros necesarios para IExpandCollapseProvider

Se requieren las siguientes propiedades, métodos y eventos para implementar la interfazIExpandCollapseProvider.

Miembros necesarios Tipo de miembro Notas
ExpandCollapseState Propiedad Ninguno
expandir Método Ninguno
contraer Método Ninguno
IUIAutomationPropertyChangedEventHandler Evento Este control no tiene eventos asociados; use este controlador de eventos genérico.

 

tipos de control y sus patrones de control admitidos

Introducción a los patrones de control de automatización de la interfaz de usuario de

Información general del árbol de automatización de la interfaz de usuario de