Implementar el patrón de control ExpandCollapse de UI Automation
Nota |
---|
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.
Nota 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 |
---|---|---|
Propiedad |
Ninguno |
|
Método |
Ninguno |
|
Método |
Ninguno |
|
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 |
---|---|
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