Información general acerca de los patrones de control 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.

Este tema es una introducción a los patrones de control para Microsoft de automatización de la interfaz de usuario. Los patrones de control proporcionan una manera de categorizar y exponer la funcionalidad de un control independientemente de su tipo o apariencia.

La automatización de la interfaz de usuario utiliza patrones de control para representar comportamientos de control comunes. Por ejemplo, utilice el patrón de control Invoke para los controles que se puedan invocar (como los botones) y el patrón de control Scroll para los controles que tengan barras de desplazamiento (como los cuadros de lista, las vistas de lista o los cuadros combinados). Como cada patrón de control representa una funcionalidad independiente, se pueden combinar para describir el conjunto completo de funcionalidad que admite 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 de los patrones 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 de funcionalidad discreta 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 los del mismo nivel describe la estructura del elemento dentro del árbol de la automatización de la interfaz de usuario.

  • Los métodos permiten que los clientes de Automatización de la interfaz de usuario manipulen el control.

  • Las propiedades y los eventos ofrecen 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 del mismo modo en que las interfaces se relacionan con los objetos de Modelo de objetos componentes (COM). En COM, puedes consultar a un objeto para preguntar qué interfaces admite y después usar esas interfaces para acceder a la funcionalidad. En la automatización de la interfaz de usuario, los clientes de automatización de la interfaz de usuario pueden preguntar a un control qué patrones de control admite y, después, interactuar con el control mediante los métodos, propiedades, eventos y estructuras que exponen los patrones de control admitidos. Por ejemplo, para un cuadro de edición multilínea, los proveedores de Automatización de la interfaz de usuario implementan IScrollProvider. Si un cliente sabe que un elemento AutomationElement admite el patrón de control ScrollPattern , puede utilizar las propiedades, los métodos y los eventos expuestos por este patrón de control para manipular el control o acceder a información sobre el control.

Clientes y proveedores 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 concreta de la funcionalidad que admite el control.

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

Los clientes utilizan métodos AutomationElement (como AutomationElement.GetCurrentPropertyValue o AutomationElement.GetCachedPropertyValue) o los descriptores de acceso de Common Language Runtime (CLR) para obtener acceso a las propiedades de la automatización de la interfaz de usuario de 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 elemento AutomationElement.

Patrones de control dinámicos

Algunos controles no siempre admiten el mismo conjunto de patrones de control. Se considera que los patrones de control se admiten cuando están disponibles para un cliente de Automatización de la interfaz de usuario. Por ejemplo, un cuadro de edición multilínea solo permite el desplazamiento vertical cuando contiene más líneas de texto de las 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).

Interfaces y clases de patrón de control

En la siguiente tabla se describen los patrones de control de la automatización de la interfaz de usuario. En la tabla también se enumeran las clases que usan los clientes de Automatización de la interfaz de usuario para acceder a los patrones de control, así como las interfaces que utilizan 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 utiliza con los controles que se pueden acoplar en un contenedor de acoplamiento. Por ejemplo, las barras de herramientas o las paletas de herramientas.
ExpandCollapsePattern IExpandCollapseProvider Se utiliza con los controles que pueden expandir o contraer. Por ejemplo, los elementos de menú de una aplicación como el menú Archivo .
GridPattern IGridProvider Se utiliza con los controles que admiten la funcionalidad de cuadrícula, como el ajuste de tamaño y el movimiento a una celda concreta. Por ejemplo, la vista de iconos grandes del Explorador de Windows o las tablas simples sin encabezados de Microsoft Word.
GridItemPattern IGridItemProvider Se utiliza con los controles que tienen celdas dentro de cuadrículas. Las celdas individuales deben admitir el patrón GridItem. Por ejemplo, cada celda en la vista de detalle del Explorador de Microsoft Windows.
InvokePattern IInvokeProvider Se utiliza con los controles que se pueden invocar, como un botón.
MultipleViewPattern IMultipleViewProvider Se utiliza con 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 miniaturas, mosaico, iconos, lista o de detalle.
RangeValuePattern IRangeValueProvider Se utiliza con los controles que tienen un intervalo de valores que se pueden 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 muestra meses tendría un intervalo de 1 a 12.
ScrollPattern IScrollProvider Se utiliza con los controles que pueden realizar desplazamiento. Por ejemplo, un control que tiene barras de desplazamiento que están activas cuando hay más información que se puede mostrar en el área visible del control.
ScrollItemPattern IScrollItemProvider Se utiliza con los controles que tienen elementos individuales en una lista que permite desplazamiento. Por ejemplo, un control de lista que tiene elementos individuales en la lista de desplazamiento, como un control de cuadro combinado.
SelectionPattern ISelectionProvider Se utiliza con los controles de contenedor de selección. Por ejemplo, los cuadros de lista y los cuadros combinados.
SelectionItemPattern ISelectionItemProvider Se utiliza con los elementos individuales de controles de contenedor de selección, como cuadros de lista y cuadros combinados.
TablePattern ITableProvider Se utiliza con los controles que tienen una cuadrícula e información de encabezado. Por ejemplo, hojas de cálculo de Microsoft Excel.
TableItemPattern ITableItemProvider Se utiliza con los elementos de una tabla.
TextPattern ITextProvider Se utiliza con los controles de edición y documentos que exponen información textual.
TogglePattern IToggleProvider Se utiliza con los controles donde se puede alternar el estado. Por ejemplo, casillas y elementos de menú que pueden activarse.
TransformPattern ITransformProvider Se utiliza con los 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 los controles que no admiten un intervalo de valores. Por ejemplo, un selector de fecha y hora.
WindowPattern IWindowProvider Expone información específica en 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, Microsoft Windows Explorer, etc.), ventanas secundarias de la interfaz de varios documentos (MDI) y diálogos.

Consulte también