Implementación del patrón de control de desplazamiento de automatización de la interfaz de usuario
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 artículo se presentan las directrices y convenciones para implementar IScrollProvider, incluida la información sobre eventos y propiedades. Al final del tema se ofrecen vínculos a referencias adicionales.
El patrón de control ScrollPattern se usa para admitir un control que actúe como contenedor desplazable para una colección de objetos secundarios. No se requiere el control para el uso de barras de desplazamiento para admitir la funcionalidad de desplazamiento, aunque lo hace habitualmente.
Ejemplo de un control de desplazamiento que no usa barras de desplazamiento
Para obtener ejemplos de controles que implementan este control, vea Control Pattern Mapping for UI Automation Clients.
Directrices y convenciones de implementación
Al implementar el patrón de control Scroll, tenga en cuenta las siguientes directrices y convenciones:
Los elementos secundarios de este control deben implementar IScrollItemProvider.
Las barras de desplazamiento de un control de contenedor no admiten el patrón de control ScrollPattern . Deben admitir el patrón de control RangeValuePattern en su lugar.
Cuando el desplazamiento se mide en porcentajes, todos los valores o cantidades relacionadas con la graduación del desplazamiento deben normalizarse a un intervalo de 0 a 100.
Las propiedadesHorizontallyScrollableProperty y VerticallyScrollableProperty son independientes de la propiedad IsEnabledProperty.
Si HorizontallyScrollableProperty =
false
, HorizontalViewSizeProperty debe establecerse en el 100 % y HorizontalScrollPercentProperty debe establecerse en NoScroll. De igual modo, si VerticallyScrollableProperty =false
, VerticalViewSizeProperty debe establecerse en el 100 por ciento y VerticalScrollPercentProperty debe establecerse en NoScroll. Esto permite que un cliente de la automatización de la interfaz de usuario use estos valores de propiedad del método SetScrollPercent a la vez que se evita una condición de carrera si se activa una dirección que al cliente no le interesa para desplazamiento.HorizontalScrollPercent es específica de la configuración regional. La configuración de HorizontalScrollPercent = 100,0 debe establecer la ubicación de desplazamiento del control en el equivalente de su posición que se encuentra situada más a la derecha para idiomas como el inglés que se leen de izquierda a derecha. Otra alternativa, para idiomas como el árabe que se leen de derecha a izquierda, la configuración de HorizontalScrollPercent = 100,0 debe establecer la ubicación de desplazamiento a la posición que se encuentra más a la izquierda.
Miembros requeridos para IScrollProvider
Para implementar IScrollProvider, se requieren las siguientes propiedades y métodos.
Miembro requerido | Tipo de miembro | Notas |
---|---|---|
HorizontalScrollPercent | Propiedad | None |
VerticalScrollPercent | Propiedad | None |
HorizontalViewSize | Propiedad | None |
VerticalViewSize | Propiedad | None |
HorizontallyScrollable | Propiedad | None |
VerticallyScrollable | Propiedad | None |
Scroll | Método | None |
SetScrollPercent | Método | None |
Este patrón de control no tiene eventos asociados.
Excepciones
Los proveedores deben producir las siguientes excepciones.
Tipo de excepción | Condición |
---|---|
ArgumentException | Scroll genera esta excepción si un control admite valores SmallIncrement exclusivamente para el desplazamiento horizontal o vertical, pero se pasa un valor LargeIncrement . |
ArgumentException | SetScrollPercent genera esta excepción cuando se pasa un valor que no se puede convertir a un tipo double. |
ArgumentOutOfRangeException | SetScrollPercent genera esta excepción cuando se pasa un valor superior a 100 o menor de 0 (excepto -1, que equivale a NoScroll). |
InvalidOperationException | Tanto Scroll como SetScrollPercent generan esta excepción cuando se intenta un desplazamiento en una dirección no admitida. |