Información general acerca de los patrones de control de automatización de la interfaz de usuario

NotaNota

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 es una introducción a los patrones de control de Microsoft UI Automation. Los patrones de control proporcionan una manera de categorizar y exponer la funcionalidad de un control independientemente de su tipo o apariencia.

La UI Automation 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 los 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 toda la funcionalidad que admite un control determinado.

NotaNota

Los controles agregados (integrados con controles secundarios que proporcionan la user interface (UI) para la funcionalidad expuesta por el control primario) deben implementar todos los patrones de control normalmente asociados a cada elemento secundario.A su vez, los controles secundarios no tienen que implementar esos mismos patrones de control.

 

Este tema contiene las secciones siguientes.

  • Componentes de los patrones de control de automatización de la interfaz de usuario
  • Proveedores y clientes de automatización de la interfaz de usuario
  • Patrones de control dinámicos
  • Clases e interfaces de patrones de control
  • Temas relacionados

 

Componentes de los patrones de control de automatización de la interfaz de usuario

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

  • La relación entre un elemento de Automatización de la interfaz de usuario y su elemento primario, sus elementos secundarios y sus elementos relacionados describe la estructura del elemento en el árbol de UI Automation.

  • 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 acerca de la funcionalidad del patrón de control, así como información acerca del estado del control.

Los patrones de control se relacionan con la UI como las interfaces se relacionan con los objetos del Component Object Model (COM). En COM, puede consultar un objeto para averiguar qué interfaces admite y, a continuación, usar esas interfaces para tener acceso a funcionalidad. En la UI Automation, los clientes de Automatización de la interfaz de usuario pueden preguntar a un control qué patrones de control admite y, a continuación, interactuar con el control a través de las propiedades, los métodos, los eventos y las 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 patrón de control ScrollPattern, puede usar las propiedades, los métodos y los eventos expuestos por ese patrón de control para manipular el control o tener acceso a información sobre el mismo.

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 de una parte específica de la funcionalidad que admite el control.

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

Los clientes usan métodos AutomationElement (como AutomationElement.GetCurrentPropertyValue o AutomationElement.GetCachedPropertyValue) o descriptores de acceso de common language runtime (CLR) para tener acceso a las propiedades de UI Automation 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 a ese patrón de control y se puede pasar como parámetro a GetCachedPattern o GetCurrentPattern a fin de recuperar ese patrón para un AutomationElement.

Patrones de control dinámicos

Algunos controles no siempre admiten el mismo conjunto de patrones de control. Se considera que se admiten los patrones de control 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 sólo cuando contiene más líneas de texto de las que se pueden mostrar en su área visible. El desplazamiento se deshabilita cuando se quita texto suficiente y ya no es necesario desplazarse. En este ejemplo, el patrón de control ScrollPattern se admite dinámicamente en función del estado actual del control (cuánto texto 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 UI Automation. En la tabla se muestran también las clases utilizadas por los clientes de Automatización de la interfaz de usuario para tener acceso a los patrones de control, así como las interfaces utilizadas por los proveedores de Automatización de la interfaz de usuario para implementarlos.

Clase de patrón de control

Interfaz de proveedor

Descripción

DockPattern

IDockProvider

Se usa para 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 se pueden expandir o contraer. Por ejemplo, los elementos de menú de una aplicación, como el menú Archivo.

GridPattern

IGridProvider

Se usa para controles que admiten funcionalidad de cuadrícula, como la modificación del tamaño y el desplazamiento a una celda especificada. Por ejemplo, la vista de iconos grandes del Explorador de Windows o las tablas simples sin encabezados de Microsoft Word.

GridItemPattern

IGridItemProvider

Se usa para controles que tienen celdas dentro de cuadrículas. Cada una de las celdas debería admitir el patrón GridItem. Por ejemplo, cada celda de la vista de detalles del Microsoft Windows Explorer.

InvokePattern

IInvokeProvider

Se usa para controles que se pueden invocar, como un botón.

MultipleViewPattern

IMultipleViewProvider

Se usa para 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 como imágenes en miniatura, en mosaico, como iconos, como una lista o con detalles.

RangeValuePattern

IRangeValueProvider

Se usa para controles que tienen un intervalo de valores que se puede aplicar al control. Por ejemplo, un control de número que contiene años podría tener un intervalo de 1900 a 2010, mientras que otro control de número que presenta meses tendría un intervalo de 1 a 12.

ScrollPattern

IScrollProvider

Se usa para controles que se pueden desplazar. 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 su área visible.

ScrollItemPattern

IScrollItemProvider

Se usa para controles que tienen elementos individuales en una lista que se desplaza. Por ejemplo, un control de lista que tiene elementos individuales en la lista de desplazamiento, como un control de cuadro combinado.

SelectionPattern

ISelectionProvider

Se usa para controles contenedores de selecciones. Por ejemplo, cuadros de lista y cuadros combinados.

SelectionItemPattern

ISelectionItemProvider

Se usa para elementos individuales en controles contenedores de selecciones, como cuadros de lista y cuadros combinados.

TablePattern

ITableProvider

Se usa para controles que tienen una cuadrícula e 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 controles de edición y documentos que exponen información textual.

TogglePattern

IToggleProvider

Se usa para controles donde se puede alternar el estado. Por ejemplo, casillas y elementos de menú que pueden activarse.

TransformPattern

ITransformProvider

Se usa para controles que se pueden cambiar de tamaño, mover y girar. Los usos típicos del patrón de control Transform se encuentran en diseñadores, formularios, editores gráficos y aplicaciones de dibujo.

ValuePattern

IValueProvider

Permite que los clientes obtengan o establezcan un valor en 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 las ventanas de la aplicación de nivel superior (Microsoft Word, Microsoft Windows Explorer, etc.), las ventanas secundarias de la multiple-document interface (MDI) y los cuadros de diálogo.

Vea también

Conceptos

Patrones de controles de UI Automation para clientes

Asignación de patrones de controles para clientes de UI Automation

Información general sobre UI Automation

Propiedades de UI Automation para clientes

Eventos de UI Automation para clientes