Compartir a través de


Implementar el patrón de control ExpandCollapse de UI Automation

NotaNota

Esta documentación está dirigida a desarrolladores de .NET Framework que desean usar las clases administradas de UI Automation definidas en el espacio de nombres System.Windows.Automation.Para obtener información actualizada sobre UI Automation, vea Windows Automation API: UI Automation.

Este tema presenta las directrices y convenciones de implementación de IExpandCollapseProvider, incluida la información acerca de propiedades, métodos y eventos. Al final de la introducción se incluye una lista de vínculos a referencias adicionales.

El patrón de control ExpandCollapsePattern se utiliza para admitir controles que se expanden visualmente para mostrar más contenido y se contraen para ocultarlo. En el caso de ejemplos de controles que implementan este patrón de control, vea Asignación de patrones de controles para clientes de UI Automation.

Este tema contiene las secciones siguientes.

  • Directrices y convenciones de implementación
  • Miembros necesarios para IExpandCollapseProvider
  • Excepciones
  • Temas relacionados

Directrices y convenciones de implementación

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

  • Los controles agregados (generados con objetos secundarios que proporcionan funcionalidad de expansión y contracción a la interfaz de usuario) deben admitir el patrón de control ExpandCollapsePattern, aunque sus elementos secundarios no lo admitan. Por ejemplo, un control de cuadro combinado se genera con una combinación de controles de cuadro de lista, botón y edición, pero sólo el cuadro combinado primario debe admitir ExpandCollapsePattern.

    NotaNota

    Una excepción es el control Menu, que es un agregado de objetos MenuItem individuales.Los objetos MenuItem pueden admitir el patrón de controlExpandCollapsePattern, pero el control Menu primario no lo admite.Se aplica una excepción similar a los controles de árbol y elemento de árbol.

  • Cuando el estado ExpandCollapseState de un control está establecido en LeafNode, toda la funcionalidad de ExpandCollapsePattern están inactivas para el control y la única información que se puede obtener mediante este patrón de control es ExpandCollapseState. Si posteriormente se agrega cualquier objeto secundario, ExpandCollapseState cambia y se activa la funcionalidad de ExpandCollapsePattern.

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

  • La funcionalidad de expansión y contracción es específica de cada control. Los siguientes son ejemplos de este comportamiento.

    • El menú Personal de Office puede ser un control MenuItem de tres estados (Expanded, Collapsed y PartiallyExpanded) donde el propio control especifica el estado que se adopta cuando se llama a Expand o Collapse.

    • Al llamar a Expand en un objeto TreeItem, se pueden mostrar todos los descendientes o sólo los elementos secundarios inmediatos.

    • Si al llamar a Expand o Collapse en un control se mantiene el estado de sus descendientes, debe enviarse un evento de cambio de visibilidad, no un evento de cambio de estado. Si el control primario no mantiene el estado de sus descendientes al contraerse, puede destruir todos los descendientes que ya no estén visibles y provocar un evento de destrucción; o bien, puede cambiar el valor de ExpandCollapseState correspondiente a cada descendiente y provocar un evento de cambio de visibilidad.

  • Para garantizar la navegación, es conveniente que los objetos se encuentren en el árbol de UI Automation (con el estado de visibilidad adecuado) independientemente de su enumeración ExpandCollapseState primaria. Si los descendientes se generan a petición, sólo pueden aparecer en el árbol de UI Automation después de mostrarse por primera vez o únicamente mientras están visibles.

Miembros necesarios para IExpandCollapseProvider

Los métodos y propiedades siguientes son necesarios para implementar IExpandCollapseProvider.

Miembros necesarios

Tipo de miembro

Notas

ExpandCollapseState

Propiedad

Ninguno

Expand

Método

Ninguno

Collapse

Método

Ninguno

AutomationPropertyChangedEventHandler

Evento

Este control no tiene ningún evento asociado; utilice este delegado genérico.

Excepciones

Los proveedores deben iniciar las excepciones siguientes.

Tipo de excepción

Condition

InvalidOperationException

Se llama a Expand o Collapse cuando ExpandCollapseState = LeafNode.

Vea también

Tareas

Patrones de control compatibles en un proveedor de UI Automation

Navegar entre elementos de UI Automation con TreeWalker

Utilizar el almacenamiento en caché en la UI Automation

Conceptos

Información general acerca de los patrones de control de automatización de la interfaz de usuario

Patrones de controles de UI Automation para clientes

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