Compartir a través de


Implementar el patrón de control Selection de UI Automation

Nota:

Esta documentación está pensada para desarrolladores de .NET Framework que desean usar las clases de automatización de la interfaz de usuario administradas definidas en el espacio de nombres System.Windows.Automation. Para obtener la información más reciente sobre la automatización de la interfaz de usuario, consulte API de Windows Automation: Automatización de la interfaz de usuario.

En este tema se presentan instrucciones y convenciones para implementar ISelectionProvider, incluida información sobre eventos y propiedades. Los vínculos a referencias adicionales se enumeran al final del tema.

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, consulte Asignación de patrones de control para clientes de automatización de la interfaz de usuario.

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 una selección única.

  • Los controles que tienen un intervalo mínimo, máximo y continuo, como el control deslizante Volumen , deben implementarse 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.

Selector de colores con amarillo resaltado. Ejemplo de asignación de cadenas de muestra de color

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

Miembros necesarios para ISelectionProvider

Se requieren las siguientes propiedades, métodos y eventos para la ISelectionProvider interfaz.

Miembros necesarios 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 Ninguno
InvalidatedEvent Evento Se genera cuando una selección en un contenedor ha cambiado significativamente y requiere generar más eventos de adición y eliminación que lo que permite la constante InvalidateLimit.

Las IsSelectionRequired propiedades y CanSelectMultiple pueden ser dinámicas. Por ejemplo, el estado inicial de un control podría no tener ningún elemento seleccionado de forma predeterminada, lo que indica que IsSelectionRequired es false. Sin embargo, después de seleccionar un elemento, el control siempre debe tener al menos un elemento seleccionado. De forma similar, en raras ocasiones, un control puede permitir que se seleccionen varios elementos en la inicialización, pero posteriormente solo se permitan realizar 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