Información general acerca de los patrones de control de UI Automation

Un patrón de control es una implementación de interfaz que expone un aspecto determinado de la funcionalidad de un control a las aplicaciones cliente de Microsoft Automatización de la interfaz de usuario. Los clientes usan las propiedades y los métodos expuestos a través de un patrón de control para recuperar información sobre una funcionalidad determinada del control o para manipular un aspecto determinado del comportamiento del control. Por ejemplo, un control que presenta una interfaz tabular usa el patrón de control Grid para exponer el número de filas y columnas de la tabla y para permitir que un cliente recupere elementos de la tabla.

La automatización de la interfaz de usuario utiliza 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, los patrones de control se pueden combinar para describir el conjunto completo de funcionalidades admitidas por un control determinado.

Nota

Un control agregado se compila con controles secundarios que proporcionan la interfaz de usuario para la funcionalidad expuesta por el elemento primario y el elemento primario debe implementar todos los patrones de control que normalmente están asociados a sus controles secundarios. En cambio, no es necesario que los controles secundarios implementen esos mismos patrones de control.

 

Este tema contiene las siguientes secciones:

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

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

  • Los métodos permiten que los clientes de Automatización de la interfaz de usuario manipulen el control.
  • Las propiedades y eventos proporcionan información sobre la funcionalidad y el estado del control.
  • La relación entre un elemento Automatización de la interfaz de usuario y sus elementos primarios, secundarios y del mismo nivel describe la estructura de elementos en el árbol de Automatización de la interfaz de usuario.

Los patrones de control se relacionan con controles similares a la forma en que las interfaces se relacionan con los objetos Component Object Model (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 pueden preguntar a un control 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.

Patrones de control en proveedores y clientes

Automatización de la interfaz de usuario proveedores implementan interfaces de patrón de control para exponer el comportamiento adecuado para una parte específica de la funcionalidad admitida por el control. Estas interfaces no se exponen directamente a los clientes, pero la Automatización de la interfaz de usuario núcleo usa para implementar otro conjunto de interfaces de cliente. Por ejemplo, un proveedor expone la funcionalidad de desplazamiento para Automatización de la interfaz de usuario a través de IScrollProvider y Automatización de la interfaz de usuario expone la funcionalidad a los clientes a través de IUIAutomationScrollPattern.

Patrones de control dinámicos

Algunos controles no siempre admiten el mismo conjunto de patrones de control. Por ejemplo, un control de edición de varias líneas solo permite el desplazamiento vertical 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, IUIAutomationScrollPattern se admite dinámicamente, en función de la cantidad de texto en el cuadro de edición.

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 interfaces de proveedor usadas para implementar los patrones de control y las interfaces de cliente usadas para acceder a ellas.

Nombre Interfaz del proveedor Interfaz del cliente Descripción
Anotación IAnnotationProvider IUIAutomationAnnotationPattern Se usa para exponer las propiedades de una anotación en un documento, por ejemplo, comentarios en el margen que están conectados al texto del documento.
Acoplar IDockProvider IUIAutomationDockPattern Se usa para los controles que se pueden acoplar en un contenedor de acoplamiento, por ejemplo, barras de herramientas o paletas de herramientas.
Arrastre IDragProvider IUIAutomationDragPattern Se usa para admitir controles arrastrables o controles con elementos arrastrables.
DropTarget IDropTargetProvider IUIAutomationDropTargetPattern Se usa para admitir controles que pueden ser el destino para una operación de arrastrar y colocar.
ExpandCollapse IExpandCollapseProvider IUIAutomationExpandCollapsePattern Se usa para los controles que se pueden expandir o contraer, por ejemplo, elementos de menú de una aplicación, como el menú Archivo.
Grid IGridProvider IUIAutomationGridPattern Se usa para los controles que admiten la funcionalidad de cuadrícula, como el ajuste de tamaño y el traslado a una celda especificada, por ejemplo, la vista de icono grande en el Explorador de Windows o tablas simples de Microsoft Office Word.
GridItem IGridItemProvider IUIAutomationGridItemPattern Se usa para los controles que tienen celdas en cuadrículas. Las celdas individuales deben admitir el patrón GridItem, por ejemplo, cada celda en la vista de detalles del Explorador de Windows.
Invocar IInvokeProvider IUIAutomationInvokePattern Se usa para controles que se pueden invocar, como botones.
ItemContainer IItemContainerProvider IUIAutomationItemContainerPattern Se usa para los controles que pueden contener otros elementos.
LegacyIAccessible ILegacyIAccessibleProvider IUIAutomationLegacyIAccessiblePattern Se usa para exponer las propiedades y los métodos de accesibilidad activa de Microsoft para Automatización de la interfaz de usuario clientes.
MultipleView IMultipleViewProvider IUIAutomationMultipleViewPattern 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 en el que los datos están disponibles en miniatura, icono, icono, lista o vistas de detalles.
ObjectModel IObjectModelProvider IUIAutomationObjectModelPattern Se usa para exponer un puntero al modelo de objetos subyacente de un documento. Este patrón de control permite a un cliente navegar desde un elemento Automatización de la interfaz de usuario al modelo de objetos subyacente.
RangeValue IRangeValueProvider IUIAutomationRangeValuePattern Se usa para los controles que tienen un intervalo de valores. Por ejemplo, un control de número que muestra años podría tener un intervalo de 1900-2010, mientras que un control de número que muestra meses tendría un intervalo de 1 a 12.
Desplazar IScrollProvider IUIAutomationScrollPattern Se usa para los controles que pueden desplazarse cuando hay más información de la que se puede mostrar en el área visible del control.
ScrollItem IScrollItemProvider IUIAutomationScrollItemPattern Se usa para controles que tienen elementos individuales en una lista que se desplaza, por ejemplo, un control de lista en un control de cuadro combinado.
Selección ISelectionProvider IUIAutomationSelectionPattern Se usa para controles de contenedor de selección, por ejemplo, cuadros de lista y cuadros combinados.
SelectionItem ISelectionItemProvider IUIAutomationSelectionItemPattern Se utiliza con los elementos individuales de controles de contenedor de selección, como cuadros de lista y cuadros combinados.
Hoja de cálculo ISpreadsheetProvider IUIAutomationSpreadsheetPattern Se usa para exponer el contenido de una hoja de cálculo u otro documento basado en cuadrícula. Los controles que implementan el patrón de control Spreadsheet también deben implementar el patrón de control Grid.
SpreadsheetItem ISpreadsheetItemProvider IUIAutomationSpreadsheetItemPattern Se usa para exponer las propiedades de una celda de una hoja de cálculo u otro documento basado en cuadrícula. Los controles que implementan el patrón de control SpreadsheetItem también deben implementar el patrón de control GridItem.
Estilos IStylesProvider IUIAutomationStylesPattern Se usa para describir un elemento de interfaz de usuario que tiene un estilo, color de relleno, patrón de relleno o forma específicos.
SynchronizedInput ISynchronizedInputProvider IUIAutomationSynchronizedInputPattern Se usa para los controles que aceptan la entrada de teclado o mouse.
Tabla ITableProvider IUIAutomationTablePattern Se usa para los controles que tienen información de cuadrícula y encabezado.
TableItem ITableItemProvider IUIAutomationTableItemPattern Se utiliza con los elementos de una tabla.
Texto ITextProvider IUIAutomationTextPattern Se utiliza con los controles de edición y documentos que exponen información textual.
TextEdit ITextEditProvider IUIAutomationTextEditPattern Se usa para editar controles que modifican texto mediante programación, por ejemplo, un control que realiza la corrección automática o habilita la composición de entrada.
TextChild ITextChildProvider IUIAutomationTextChildPattern Se usa para acceder al antecesor más próximo de un elemento que admite el patrón de control Text.
TextRange ITextRangeProvider IUIAutomationTextRange Se usa para recuperar contenido textual, atributos de texto y objetos incrustados de controles basados en texto, como controles de edición y documentos.
Alternancia IToggleProvider IUIAutomationTogglePattern Se usa para los controles en los que el estado se puede alternar, por ejemplo, casillas y elementos de menú activables.
Transformación ITransformProvider IUIAutomationTransformPattern 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.
Valor IValueProvider IUIAutomationValuePattern Se usa para los controles que tienen un valor que no se encuentra dentro de un intervalo especificado, por ejemplo, un selector de fecha y hora.
VirtualizedItem IVirtualizedItemProvider IUIAutomationVirtualizedItemPattern Se usa para los controles que funcionan con elementos de una lista virtual.
Ventana IWindowProvider IUIAutomationWindowPattern Se usa para ventanas. Algunos ejemplos son ventanas de aplicación de nivel superior, ventanas secundarias de interfaz de varios documentos (MDI) y cuadros de diálogo.

 

Conceptual

Implementación de patrones de control Automatización de la interfaz de usuario

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