Compartir a través de


Implementar el patrón de control Selection de UI Automation

Nota

Esta documentación está dirigida a los desarrolladores de .NET Framework que quieran usar las clases de automatización de la interfaz de usuario administradas definidas en el espacio de nombres System.Windows.Automation. Para ver la información más reciente acerca de la automatización de la interfaz de usuario, consulte Windows Automation API: automatización de la interfaz de usuario.

En este tema se presentan las directrices y convenciones para implementar ISelectionProvider, incluida la información sobre eventos y propiedades. Al final del tema se ofrecen vínculos a referencias adicionales.

El patrón de control SelectionPattern se usa para admitir controles que actúan como contenedores para una colección de elementos secundarios seleccionables. Los elementos secundarios de este elemento deben implementar ISelectionItemProvider. Para obtener ejemplos de controles que implementan este patrón de control, vea Control Pattern Mapping for UI Automation Clients.

Directrices y convenciones de implementación

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

  • Los controles que implementan ISelectionProvider permiten la selección de elementos secundarios únicos o múltiples. Por ejemplo, el cuadro de lista, la vista de lista y la vista de árbol admiten varias selecciones mientras que el cuadro combinado, el control deslizante y el grupo de botones de radio admiten la selección única.

  • Los controles que tienen un intervalo mínimo, máximo y continuo, como el control deslizante Volumen , deben implementar IRangeValueProvider en lugar de ISelectionProvider.

  • Los controles de selección única que administran los controles secundarios que implementan IRawElementProviderFragmentRoot, como el control deslizante de Resolución de pantalla del cuadro de diálogo Propiedades de pantalla o el control de selección Selector de colores de Microsoft Word (se muestra a continuación), deben implementar ISelectionProvider; sus elementos secundarios deben implementar tanto IRawElementProviderFragment como ISelectionItemProvider.

Color picker with yellow highlighted. Ejemplo de asignación de una cadena de muestra de colores

  • Los menús no admiten SelectionPattern. Si trabaja con elementos de menú que incluyen tanto gráficos como texto (como los elementos del panel de vista previa del menú Ver de Microsoft Outlook) y tiene que transmitir el estado, debe implementar IToggleProvider.

Miembros requeridos para ISelectionProvider

Para la interfaz de ISelectionProvider , se requieren las siguientes propiedades, métodos y eventos.

Miembros requeridos Tipo Notas
CanSelectMultiple Propiedad Debe admitir eventos de cambio de propiedad mediante AddAutomationPropertyChangedEventHandler y RemoveAutomationPropertyChangedEventHandler.
IsSelectionRequired Propiedad Debe admitir eventos de cambio de propiedad mediante AddAutomationPropertyChangedEventHandler y RemoveAutomationPropertyChangedEventHandler.
GetSelection Método None
InvalidatedEvent Evento Se produce cuando una selección de un contenedor ha cambiado de manera considerable y requiere el envío de más eventos de adición y eliminación de lo que permite la constante InvalidateLimit .

Las propiedades IsSelectionRequired y CanSelectMultiple pueden ser dinámicas. Por ejemplo, es posible que el estado inicial de un control no tenga elementos seleccionados de forma predeterminada, lo que indica que IsSelectionRequired es false. Sin embargo, cuando se haya seleccionado un elemento, el control siempre debe tener al menos un elemento seleccionado. Del mismo modo, en raras ocasiones, un control podría permitir la selección de varios elementos en la inicialización pero solo permitir posteriormente la realización de selecciones únicas.

Excepciones

Los proveedores deben producir las siguientes excepciones.

Tipo de excepción Condición
ElementNotEnabledException Si el control no está habilitado.
InvalidOperationException Si el control está oculto.

Consulte también