Patrones de controles de UI Automation para clientesUI Automation Control Patterns for Clients

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.

Este tema es una introducción a los patrones de control para clientes de UI Automation.This overview introduces control patterns for UI Automation clients. Incluye información que explica cómo un cliente de automatización de la interfaz de usuario puede usar los patrones de control para tener acceso a la información sobre interfaz de usuario (UI)user interface (UI).It includes information on how a UI Automation client can use control patterns to access information about the interfaz de usuario (UI)user interface (UI).

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. Los clientes de automatización de la interfaz de usuario pueden examinar un AutomationElement para determinar qué patrones de control son compatibles y estar seguros del comportamiento del control.UI Automation clients can examine an AutomationElement to determine which control patterns are supported and be assured of the behavior of the control.

Para obtener una lista completa de los patrones de control, vea UI Automation Control Patterns Overview.For a complete list of control patterns, see UI Automation Control Patterns Overview.

Obtener patrones de controlGetting Control Patterns

Los clientes recuperan un patrón de control de un AutomationElement mediante una llamada a AutomationElement.GetCachedPattern o AutomationElement.GetCurrentPattern.Clients retrieve a control pattern from an AutomationElement by calling either AutomationElement.GetCachedPattern or AutomationElement.GetCurrentPattern.

Los clientes pueden usar el método GetSupportedPatterns o una propiedad IsPatternAvailable individual (por ejemplo, IsTextPatternAvailableProperty) para determinar si se admite un patrón o un grupo de patrones en el AutomationElement.Clients can use the GetSupportedPatterns method or an individual IsPatternAvailable property (for example, IsTextPatternAvailableProperty) to determine if a pattern or group of patterns is supported on the AutomationElement. Sin embargo, resulta más eficaz intentar obtener el patrón de control y comprobar si hay una referencia null que comprobar las propiedades compatibles y recuperar el patrón de control, ya que se generan menos llamadas entre procesos.However, it is more efficient to attempt to get the control pattern and test for a null reference than to check the supported properties and retrieve the control pattern since it results in fewer cross-process calls.

En el siguiente ejemplo se muestra cómo obtener un patrón de control TextPattern de un AutomationElement.The following example demonstrates how to get a TextPattern control pattern from an AutomationElement.

// Specify the control type we're looking for, in this case 'Document'
PropertyCondition cond = new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Document);

// target --> The root AutomationElement.
AutomationElement textProvider = target.FindFirst(TreeScope.Descendants, cond);

targetTextPattern = textProvider.GetCurrentPattern(TextPattern.Pattern) as TextPattern;

if (targetTextPattern == null)
{
    Console.WriteLine("Root element does not contain a descendant that supports TextPattern.");
    return;
}

Recuperar propiedades en patrones de controlRetrieving Properties on Control Patterns

Para recuperar los valores de propiedad en los patrones de control, los clientes pueden llamar a AutomationElement.GetCachedPropertyValue o AutomationElement.GetCurrentPropertyValue y convertir el objeto devuelto al tipo apropiado.Clients can retrieve the property values on control patterns by calling either AutomationElement.GetCachedPropertyValue or AutomationElement.GetCurrentPropertyValue and casting the object returned to an appropriate type. Para obtener más información sobre las propiedades de Automatización de la interfaz de usuarioUI Automation, consulte UI Automation Properties for clients.For more information on Automatización de la interfaz de usuarioUI Automation properties, see UI Automation Properties for Clients.

Además de los métodos de GetPropertyValue, los valores de propiedad se pueden recuperar a través de 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.In addition to the GetPropertyValue methods, property values can be retrieved through the common language runtime (CLR) accessors to access the Automatización de la interfaz de usuarioUI Automation properties on a pattern.

Controles con patrones variablesControls with Variable Patterns

Algunos tipos de controles admiten patrones diferentes en función de su estado o de la manera en la que se usan.Some control types support different patterns depending on their state or the manner in which the control is being used. Ejemplos de controles que pueden tener patrones variables son las vistas de lista (miniaturas, mosaicos, iconos, lista, detalles), gráficos de Microsoft Excel (circular, línea, barra, valor de celda con una fórmula), área de documento de Microsoft Word (normal, diseño web, esquema, diseño de impresión, imprimir Versión preliminar) y Microsoft Windows Media Player máscaras.Examples of controls that can have variable patterns are list views (thumbnails, tiles, icons, list, details), Microsoft Excel Charts (Pie, Line, Bar, Cell Value with a formula), Microsoft Word's document area (Normal, Web Layout, Outline, Print Layout, Print Preview), and Microsoft Windows Media Player skins.

Los controles que implementan tipos de controles personalizados pueden tener cualquier conjunto de patrones de control que sea necesario para representar su funcionalidad.Controls implementing custom control types can have any set of control patterns that are needed to represent their functionality.

Vea tambiénSee also