Compartir a través de


Introducción a los patrones de control de automatización de la interfaz de usuario

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 esta introducción se presentan los patrones de control de Automatización de la interfaz de usuario de Microsoft. Los patrones de control proporcionan una manera de clasificar y exponer la funcionalidad de un control independientemente del tipo de control o la apariencia del control.

La automatización de la interfaz de usuario usa patrones de control para representar comportamientos de control comunes. Por ejemplo, se usa el patrón de control Invoke para los controles que se pueden invocar (como botones) y el patrón de control Scroll para los controles que tienen barras de desplazamiento (como cuadros de lista, vistas de lista o cuadros combinados). Dado que cada patrón de control representa una funcionalidad independiente, se pueden combinar para describir el conjunto completo de funcionalidades compatibles con un control determinado.

Nota:

Los controles agregados, creados con controles secundarios que proporcionan a la interfaz de usuario (UI) la funcionalidad que expone el objeto primario, deben implementar todos los patrones de control normalmente asociados con cada control secundario. En cambio, no es necesario que los controles secundarios implementen esos mismos patrones de control.

Componentes del patrón de control de automatización de la interfaz de usuario

Los patrones de control admiten los métodos, propiedades, eventos y relaciones necesarios para definir una parte discreta de la funcionalidad disponible en un control.

  • La relación entre un elemento de UI Automation y sus elementos padre, hijos y hermanos describe la estructura del elemento dentro del árbol de automatización de la interfaz de usuario.

  • Los métodos permiten a los clientes de automatización de la interfaz de usuario manipular el control.

  • Las propiedades y los eventos proporcionan información sobre la funcionalidad del patrón de control, así como información sobre el estado del control.

Los patrones de control se relacionan con la interfaz de usuario como interfaces relacionadas con objetos del modelo de objetos componentes (COM). En COM, puede consultar un objeto para preguntar qué interfaces admite y, a continuación, usar esas interfaces para acceder a la funcionalidad. En automatización de la interfaz de usuario, los clientes de automatización de la interfaz de usuario pueden preguntar a qué patrones de control admite y, a continuación, interactuar con el control a través de las propiedades, métodos, eventos y estructuras expuestos por los patrones de control admitidos. Por ejemplo, para un cuadro de edición de varias líneas, los proveedores de automatización de la interfaz de usuario implementan IScrollProvider. Cuando un cliente sabe que AutomationElement admite el ScrollPattern patrón de control, puede usar las propiedades, los métodos y los eventos expuestos por ese patrón de control para manipular el control o obtener acceso a la información sobre el control.

Proveedores y clientes de automatización de la interfaz de usuario

Los proveedores de automatización de la interfaz de usuario implementan patrones de control para exponer el comportamiento adecuado para una parte específica de la funcionalidad admitida por el control.

Los clientes de automatización de la interfaz de usuario acceden a métodos y propiedades de las clases de patrones de control de automatización de la interfaz de usuario y los usan para obtener información sobre la interfaz de usuario o para manipular la interfaz de usuario. Estas clases de patrón de control se encuentran en el System.Windows.Automation espacio de nombres (por ejemplo, InvokePattern y SelectionPattern).

Los clientes usan métodos AutomationElement (como AutomationElement.GetCurrentPropertyValue o AutomationElement.GetCachedPropertyValue) o los accesores del Common Language Runtime (CLR) para acceder a las propiedades de automatización de la interfaz de usuario en un patrón. Cada clase de patrón de control tiene un miembro de campo (por ejemplo, InvokePattern.Pattern o SelectionPattern.Pattern) que identifica ese patrón de control y se puede pasar como un parámetro a GetCachedPattern o GetCurrentPattern para recuperar ese patrón para un AutomationElement.

Patrones de control dinámicos

Algunos controles no siempre admiten el mismo conjunto de patrones de control. Los patrones de control se consideran compatibles cuando están disponibles para un cliente de Automatización de la interfaz de usuario. Por ejemplo, un cuadro de edición de varias líneas habilita el desplazamiento vertical solo cuando contiene más líneas de texto de las que se pueden mostrar en su área visible. El desplazamiento se deshabilita cuando se elimina el texto suficiente para que ya no sea necesario desplazarse. En este ejemplo, el patrón de control ScrollPattern se admite dinámicamente según el estado actual del control (la cantidad de texto que hay en el cuadro de edición).

Clases e interfaces de patrones de control

En la tabla siguiente se describen los patrones de control de automatización de la interfaz de usuario. En la tabla también se enumeran las clases usadas por los clientes de automatización de la interfaz de usuario para acceder a los patrones de control, así como las interfaces que usan los proveedores de automatización de la interfaz de usuario para implementarlos.

Clase de patrón de control Interfaz del proveedor Descripción
DockPattern IDockProvider Se usa para los controles que se pueden acoplar en un contenedor de acoplamiento. Por ejemplo, barras de herramientas o paletas de herramientas.
ExpandCollapsePattern IExpandCollapseProvider Se usa para controles que pueden expandirse o contraerse. Por ejemplo, los elementos de menú de una aplicación como el menú Archivo .
GridPattern IGridProvider Se usa para los controles que admiten la funcionalidad de cuadrícula, como el ajuste de tamaño y el movimiento a una celda especificada. Por ejemplo, la vista de icono grande en el Explorador de Windows o tablas simples sin encabezados en Microsoft Word.
GridItemPattern IGridItemProvider Se usa para controles que tienen celdas dentro de cuadrículas. Las celdas individuales deben admitir el patrón GridItem. Por ejemplo, cada celda de la vista de detalles del Explorador de Microsoft Windows.
InvokePattern IInvokeProvider Se usa para controles que se pueden invocar, como un botón.
MultipleViewPattern IMultipleViewProvider Se usa para los controles que pueden cambiar entre varias representaciones del mismo conjunto de información, datos o elementos secundarios. Por ejemplo, un control de vista de lista donde los datos están disponibles en vistas en miniatura, mosaico, icono, lista o vista detallada.
RangeValuePattern IRangeValueProvider Se usa para los controles que tienen un intervalo de valores que se pueden aplicar al control. Por ejemplo, un control giratorio que muestra años podría tener un rango de 1900 a 2010, mientras que otro control giratorio que presenta meses tendría un rango de 1 a 12.
ScrollPattern IScrollProvider Usado para controles que pueden desplazarse. Por ejemplo, un control que tiene barras de desplazamiento que están activas cuando hay más información de la que se puede mostrar en el área visible del control.
ScrollItemPattern IScrollItemProvider Se usa para los controles que tienen elementos individuales en una lista que se desplaza. Por ejemplo, un control de lista que contiene elementos individuales en una lista desplegable, como un control de cuadro combinado.
SelectionPattern ISelectionProvider Se usa para controles de selección del contenedor. Por ejemplo, cuadros de lista y cuadros combinados.
SelectionItemPattern ISelectionItemProvider Se usa para elementos individuales en controles de contenedor de selección, como cuadros de lista y cuadros combinados.
TablePattern ITableProvider Se usa para los controles que tienen una cuadrícula, así como la información de encabezado. Por ejemplo, hojas de cálculo de Microsoft Excel.
TableItemPattern ITableItemProvider Se usa para los elementos de una tabla.
TextPattern ITextProvider Se usa para editar controles y documentos que exponen información textual.
TogglePattern IToggleProvider Se usa para los controles en los que se puede alternar el estado. Por ejemplo, casillas verificables y elementos de menú seleccionables.
TransformPattern ITransformProvider Se usa para los controles que se pueden cambiar de tamaño, mover y girar. Los usos típicos del patrón de control Transform están en diseñadores, formularios, editores gráficos y aplicaciones de dibujo.
ValuePattern IValueProvider Permite a los clientes obtener o establecer un valor en los controles que no admiten un intervalo de valores. Por ejemplo, un selector de fecha y hora.
WindowPattern IWindowProvider Expone información específica de las ventanas, un concepto fundamental para el sistema operativo Microsoft Windows. Algunos ejemplos de controles que son ventanas son ventanas de aplicación de nivel superior (Microsoft Word, Explorador de Microsoft Windows, etc.), ventanas secundarias de interfaz de varios documentos (MDI) y diálogos.

Consulte también