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 contraerse para ocultar el contenido.

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

En este tema se incluyen las siguientes secciones.

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 interfaz de usuario con funcionalidad de expansión y contracción, 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 IExpandCollapseProvider::ExpandCollapseState de un control se establece en ExpandCollapseState_LeafNode, cualquier funcionalidad ExpandCollapse está inactiva actualmente para el control y la única información que se puede obtener con este patrón de control es ExpandCollapseState. Si posteriormente se agregan objetos secundarios, expandCollapseState cambia y se activa la funcionalidad ExpandCollapse .

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

  • La funcionalidad IExpandCollapseProvider::Expand y Collapse 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", "Contraído" y "ParcialmenteExpanded") donde el control especifica el estado que se debe adoptar cuando se llama a Expandir o Contraer .
    • Llamar a Expand en un elemento de árbol puede mostrar todos los descendientes o solo los elementos secundarios inmediatos.
    • Si llama a Expand o Collapse 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 ExpandCollapseState 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 Microsoft Automatización de la interfaz de usuario (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 UI Automation después de que se muestren 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 interfaz IExpandCollapseProvider .

Miembros requeridos Tipo de miembro Notas
ExpandCollapseState Propiedad None
Expanda Método None
Contraer Método None
IUIAutomationPropertyChangedEventHandler Evento Este control no tiene eventos asociados; use este controlador de eventos genérico.

 

Tipos de control y sus patrones de control admitidos

Información general acerca de los patrones de control de UI Automation

Información general sobre el árbol de la UI Automation