Información general acerca de los patrones de control de UI AutomationUI Automation Control Patterns Overview

Nota

Esta documentación está dirigida a los desarrolladores de .NET Framework que quieran usar las clases Automatización de la interfaz de usuarioUI Automation administradas definidas en el espacio de nombres System.Windows.Automation.This documentation is intended for .NET Framework developers who want to use the managed Automatización de la interfaz de usuarioUI Automation classes defined in the System.Windows.Automation namespace. Para ver la información más reciente acerca de Automatización de la interfaz de usuarioUI Automation, consulte Windows Automation API: automatización de la interfaz de usuario.For the latest information about Automatización de la interfaz de usuarioUI Automation, see Windows Automation API: UI Automation.

Esta introducción presenta los patrones de control de Automatización de la interfaz de usuario de MicrosoftMicrosoft UI Automation .This overview introduces Automatización de la interfaz de usuario de MicrosoftMicrosoft UI Automation control patterns. Los patrones de control proporcionan una manera de categorizar y exponer la funcionalidad de un control independientemente de su tipo o apariencia.Control patterns provide a way to categorize and expose a control's functionality independent of the control type or the appearance of the control.

Automatización de la interfaz de usuarioUI Automation utiliza patrones de control para representar comportamientos de control comunes.uses control patterns to represent common control behaviors. 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).For example, you use the Invoke control pattern for controls that can be invoked (such as buttons) and the Scroll control pattern for controls that have scroll bars (such as list boxes, list views, or combo boxes). 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.Because each control pattern represents a separate functionality, they can be combined to describe the full set of functionality supported by a particular control.

Nota

Los controles agregados, creados con controles secundarios que proporcionan a interfaz de usuario (UI)user interface (UI) la funcionalidad que expone el objeto primario, deben implementar todos los patrones de control normalmente asociados con cada control secundario.Aggregate controls—built with child controls that provide the interfaz de usuario (UI)user interface (UI) for functionality exposed by the parent—should implement all control patterns normally associated with each child control. En cambio, no es necesario que los controles secundarios implementen esos mismos patrones de control.In turn, those same control patterns are not required to be implemented by the child controls.

Componentes de los patrones de control de Automatización de la interfaz de usuarioUI Automation Control Pattern Components

Los patrones de control admiten los métodos, propiedades, eventos y relaciones necesarios para definir una parte de funcionalidad discreta disponible en un control.Control patterns support the methods, properties, events, and relationships needed to define a discrete piece of functionality available in a 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 Automatización de la interfaz de usuarioUI Automation .The relationship between a UI Automation element and its parent, children and siblings describes the element's structure within the Automatización de la interfaz de usuarioUI Automation tree.

  • Los métodos permiten que los clientes de Automatización de la interfaz de usuario manipulen el control.The methods allow UI Automation clients to manipulate the 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.The properties and events provide information about the control pattern's functionality as well as information about the state of the control.

Los patrones de control se relacionan con IUUI a medida que las interfaces se relacionan con los objetos del modelo de objetos componentes (COM).Control patterns relate to IUUI as interfaces relate to Component Object Model (COM) objects. En COM, puede consultar un objeto para preguntar qué interfaces admite y, a continuación, usar esas interfaces para tener acceso a la funcionalidad.In COM, you can query an object to ask what interfaces it supports and then use those interfaces to access functionality. En Automatización de la interfaz de usuarioUI Automation, 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.In Automatización de la interfaz de usuarioUI Automation, UI Automation clients can ask a control which control patterns it supports and then interact with the control through the properties, methods, events, and structures exposed by the supported control patterns. Por ejemplo, para un cuadro de edición multilínea, los proveedores de Automatización de la interfaz de usuario implementan IScrollProvider.For example, for a multiline edit box, UI Automation providers implement 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.When a client knows that an AutomationElement supports the ScrollPattern control pattern, it can use the properties, methods, and events exposed by that control pattern to manipulate the control, or access information about the control.

Clientes y proveedores de Automatización de la interfaz de usuarioUI Automation Providers and Clients

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.UI Automation providers implement control patterns to expose the appropriate behavior for a specific piece of functionality supported by the control.

Los clientes de Automatización de la interfaz de usuario acceden a métodos y propiedades de clases de patrones de control Automatización de la interfaz de usuarioUI Automation y los usan para obtener información sobre IUUIo para manipular IUUI.UI Automation clients access methods and properties of Automatización de la interfaz de usuarioUI Automation control pattern classes and use them to get information about the IUUI, or to manipulate the IUUI. Estas clases de patrones de control se encuentran en el espacio de nombres System.Windows.Automation (por ejemplo, InvokePattern y SelectionPattern).These control pattern classes are found in the System.Windows.Automation namespace (for example, InvokePattern and SelectionPattern).

Los clientes utilizan métodos de AutomationElement (como AutomationElement.GetCurrentPropertyValue o AutomationElement.GetCachedPropertyValue) o los descriptores de acceso Common Language Runtime (CLR) para tener acceso a las propiedades de Automatización de la interfaz de usuarioUI Automation en un patrón.Clients use AutomationElement methods (such as AutomationElement.GetCurrentPropertyValue or AutomationElement.GetCachedPropertyValue) or the common language runtime (CLR) accessors to access the Automatización de la interfaz de usuarioUI Automation properties on a pattern. 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.Each control pattern class has a field member (for example, InvokePattern.Pattern or SelectionPattern.Pattern) that identifies that control pattern and can be passed as a parameter to GetCachedPattern or GetCurrentPattern to retrieve that pattern for an AutomationElement.

Patrones de control dinámicosDynamic Control Patterns

Algunos controles no siempre admiten el mismo conjunto de patrones de control.Some controls do not always support the same set of control patterns. Se considera que los patrones de control se admiten cuando están disponibles para un cliente de Automatización de la interfaz de usuario.Control patterns are considered supported when they are available to a UI Automation client. 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.For example, a multiline edit box enables vertical scrolling only when it contains more lines of text than can be displayed in its viewable area. El desplazamiento se deshabilita cuando se elimina el texto suficiente para que ya no sea necesario desplazarse.Scrolling is disabled when enough text is removed so that scrolling is no longer required. 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).For this example, the ScrollPattern control pattern is dynamically supported depending on the current state of the control (how much text is in the edit box).

Interfaces y clases de patrón de controlControl Pattern Classes and Interfaces

En la siguiente tabla se describen los patrones de control de Automatización de la interfaz de usuarioUI Automation .The following table describes the Automatización de la interfaz de usuarioUI Automation control patterns. 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.The table also lists the classes used by UI Automation clients to access the control patterns, as well as the interfaces used by UI Automation providers to implement them.

Clase de patrón de controlControl Pattern Class Interfaz del proveedorProvider Interface DescripciónDescription
DockPattern IDockProvider Se utiliza con los controles que se pueden acoplar en un contenedor de acoplamiento.Used for controls that can be docked in a docking container. Por ejemplo, las barras de herramientas o las paletas de herramientas.For example, toolbars or tool palettes.
ExpandCollapsePattern IExpandCollapseProvider Se utiliza con los controles que pueden expandir o contraer.Used for controls that can be expanded or collapsed. Por ejemplo, los elementos de menú de una aplicación como el menú Archivo .For example, menu items in an application such as the File menu.
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.Used for controls that support grid functionality such as sizing and moving to a specified cell. Por ejemplo, la vista de iconos grandes en el explorador de Windows o las tablas simples sin encabezados en Microsoft Word.For example, the large icon view in Windows Explorer or simple tables without headers in Microsoft Word.
GridItemPattern IGridItemProvider Se utiliza con los controles que tienen celdas dentro de cuadrículas.Used for controls that have cells within grids. Las celdas individuales deben admitir el patrón GridItem.The individual cells should support the GridItem pattern. Por ejemplo, cada celda de la vista de detalle del explorador de Microsoft Windows.For example, each cell in Microsoft Windows Explorer detail view.
InvokePattern IInvokeProvider Se utiliza con los controles que se pueden invocar, como un botón.Used for controls that can be invoked, such as a button.
MultipleViewPattern IMultipleViewProvider Se utiliza con los controles que pueden cambiar entre varias representaciones del mismo conjunto de información, datos o elementos secundarios.Used for controls that can switch between multiple representations of the same set of information, data, or children. Por ejemplo, un control de vista de lista donde los datos están disponibles en vistas en miniaturas, mosaico, iconos, lista o de detalle.For example, a list view control where data is available in thumbnail, tile, icon, list, or detail views.
RangeValuePattern IRangeValueProvider Se utiliza con los controles que tienen un intervalo de valores que se pueden aplicar al control.Used for controls that have a range of values that can be applied to the 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.For example, a spinner control containing years might have a range of 1900 to 2010, while another spinner control presenting months would have a range of 1 to 12.
ScrollPattern IScrollProvider Se utiliza con los controles que pueden realizar desplazamiento.Used for controls that can scroll. 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.For example, a control that has scroll bars that are active when there is more information than can be displayed in the viewable area of the control.
ScrollItemPattern IScrollItemProvider Se utiliza con los controles que tienen elementos individuales en una lista que permite desplazamiento.Used for controls that have individual items in a list that scrolls. Por ejemplo, un control de lista que tiene elementos individuales en la lista de desplazamiento, como un control de cuadro combinado.For example, a list control that has individual items in the scroll list, such as a combo box control.
SelectionPattern ISelectionProvider Se utiliza con los controles de contenedor de selección.Used for selection container controls. Por ejemplo, los cuadros de lista y los cuadros combinados.For example, list boxes and combo boxes.
SelectionItemPattern ISelectionItemProvider Se utiliza con los elementos individuales de controles de contenedor de selección, como cuadros de lista y cuadros combinados.Used for individual items in selection container controls, such as list boxes and combo boxes.
TablePattern ITableProvider Se utiliza con los controles que tienen una cuadrícula e información de encabezado.Used for controls that have a grid as well as header information. Por ejemplo, hojas de cálculo de Microsoft Excel.For example, Microsoft Excel worksheets.
TableItemPattern ITableItemProvider Se utiliza con los elementos de una tabla.Used for items in a table.
TextPattern ITextProvider Se utiliza con los controles de edición y documentos que exponen información textual.Used for edit controls and documents that expose textual information.
TogglePattern IToggleProvider Se utiliza con los controles donde se puede alternar el estado.Used for controls where the state can be toggled. Por ejemplo, casillas y elementos de menú que pueden activarse.For example, check boxes and checkable menu items.
TransformPattern ITransformProvider Se utiliza con los controles que se pueden cambiar de tamaño, mover y girar.Used for controls that can be resized, moved, and rotated. Los usos típicos del patrón de control Transform se encuentran en diseñadores, formularios, editores gráficos y aplicaciones de dibujo.Typical uses for the Transform control pattern are in designers, forms, graphical editors, and drawing applications.
ValuePattern IValueProvider Permite que los clientes obtengan o establezcan un valor en los controles que no admiten un intervalo de valores.Allows clients to get or set a value on controls that do not support a range of values. Por ejemplo, un selector de fecha y hora.For example, a date time picker.
WindowPattern IWindowProvider Expone información específica de Windows, un concepto fundamental para el sistema operativo Microsoft Windows.Exposes information specific to windows, a fundamental concept to the Microsoft Windows operating system. Ejemplos de controles que son ventanas son las ventanas de aplicación de nivel superior (Microsoft Word, explorador de Microsoft Windows, etc.), las ventanas secundarias de la interfaz de múltiples documentos (MDI) y los cuadros de diálogo.Examples of controls that are windows are top-level application windows (Microsoft Word, Microsoft Windows Explorer, and so on), multiple-document interface (MDI) child windows, and dialogs.

Vea tambiénSee also