Información general acerca de las propiedades 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.

Los proveedores de Automatización de la interfaz de usuario exponen las propiedades de los elementos de Automatización de la interfaz de usuario de Microsoft. Estas propiedades permiten que las aplicaciones de cliente de Automatización de la interfaz de usuario detecten información sobre partes de la interfaz de usuario, especialmente los controles, e incluidos los datos estáticos y dinámicos.

En esta sección se ofrece una amplia introducción a las propiedades de Automatización de la interfaz de usuario de Microsoft. En los temas siguientes se proporciona información más específica:

Identificadores de propiedad

Cada propiedad se identifica mediante un número y un nombre. Los nombres de las propiedades se utilizan únicamente para la depuración y el diagnóstico. Los proveedores usan los identificadores numéricos para identificar las solicitudes de propiedad entrantes. Las aplicaciones cliente, sin embargo, solo utilizan AutomationProperty, que encapsula el número y el nombre, para identificar las propiedades que quieren recuperar.

Los objetosAutomationProperty que representan propiedades determinadas están disponibles como campos en diversas clases. Por motivos de seguridad, los proveedores de Automatización de la interfaz de usuario obtienen estos objetos de un conjunto independiente de clases que están incluidas en Uiautomationtypes.dll.

En la tabla siguiente se clasifican las propiedades por las clases que contienen los identificadores AutomationProperty.

Tipos de propiedades Los clientes obtienen los identificadores de Los proveedores obtienen los identificadores de
Propiedades comunes a todos los elementos (consulte las tablas siguientes) AutomationElement AutomationElementIdentifiers
Posición de una ventana de acoplamiento DockPattern DockPatternIdentifiers
Estado de un elemento que se puede expandir y contraer ExpandCollapsePattern ExpandCollapsePatternIdentifiers
Propiedades de un elemento en una cuadrícula GridItemPattern GridItemPatternIdentifiers
Propiedades de una cuadrícula GridPattern GridPatternIdentifiers
Vista actual y admitida de un elemento que tiene varias vistas MultipleViewPattern MultipleViewPatternIdentifiers
Propiedades de un elemento que se desplaza en un intervalo de valores, como un control deslizante RangeValuePattern RangeValuePatternIdentifiers
Propiedades de una ventana desplazable ScrollPattern ScrollPatternIdentifiers
Estado y contenedor de un elemento que se puede seleccionar, como en una lista SelectionItemPattern SelectionItemPatternIdentifiers
Propiedades de un control que contiene elementos de selección SelectionPattern SelectionPatternIdentifiers
Encabezados de fila y columna de un elemento en una tabla TableItemPattern TableItemPatternIdentifiers
Encabezados de fila y columna, y orientación, de una tabla TablePattern TablePatternIdentifiers
Estado de un control de alternancia TogglePattern TogglePatternIdentifiers
Capacidades de un elemento que se pueden mover, girar o cambiar de tamaño TransformPattern TransformPatternIdentifiers
Capacidades de lectura y escritura y valor de un elemento que tiene un valor ValuePattern ValuePatternIdentifiers
Capacidades y estado de una ventana WindowPattern WindowPatternIdentifiers

Propiedades por categoría

En las siguientes tablas se clasifican las propiedades cuyos identificadores se encuentran en AutomationElement y AutomationElementIdentifiers. Estas propiedades son comunes para todos los controles. Salvo algunas de ellas, todas suelen ser estáticas a lo largo de la duración de la aplicación de proveedor; la mayoría de propiedades dinámicas están asociadas con patrones de control.

En la columna Property Access se enumeran los otros descriptores de acceso de cada propiedad, además de GetCurrentPropertyValue y GetCachedPropertyValue. Para más información sobre la obtención de propiedades en una aplicación cliente, consulte UI Automation Properties for Clients.

Nota

Para obtener información específica sobre cada propiedad, siga el vínculo de la columna Property Access .

Características de presentación

Identificador de la propiedad Property Access
BoundingRectangleProperty BoundingRectangle
CultureProperty N/D
HelpTextProperty HelpText
IsOffscreenProperty IsOffscreen
OrientationProperty Orientation

Tipo de elemento

Identificador de la propiedad Property Access
ControlTypeProperty ControlType
IsContentElementProperty IsContentElement
IsControlElementProperty IsControlElement
ItemTypeProperty ItemType
LocalizedControlTypeProperty LocalizedControlType

Identificación

Identificador de la propiedad Property Access
AutomationIdProperty AutomationId
ClassNameProperty ClassName
FrameworkIdProperty FrameworkId
LabeledByProperty LabeledBy
NameProperty Name
ProcessIdProperty ProcessId
RuntimeIdProperty GetRuntimeId
NativeWindowHandleProperty NativeWindowHandle

Interacción

Identificador de la propiedad Property Access
AcceleratorKeyProperty AcceleratorKey
AccessKeyProperty AccessKey
ClickablePointProperty GetClickablePoint
HasKeyboardFocusProperty HasKeyboardFocus
IsEnabledProperty IsEnabled
IsKeyboardFocusableProperty IsKeyboardFocusable

Compatibilidad con patrones

Identificador de la propiedad Property Access
IsDockPatternAvailableProperty GetSupportedPatterns
IsExpandCollapsePatternAvailableProperty GetSupportedPatterns
IsGridItemPatternAvailableProperty GetSupportedPatterns
IsGridPatternAvailableProperty GetSupportedPatterns
IsInvokePatternAvailableProperty GetSupportedPatterns
IsMultipleViewPatternAvailableProperty GetSupportedPatterns
IsRangeValuePatternAvailableProperty GetSupportedPatterns
IsScrollItemPatternAvailableProperty GetSupportedPatterns
IsScrollPatternAvailableProperty GetSupportedPatterns
IsSelectionItemPatternAvailableProperty GetSupportedPatterns
IsSelectionPatternAvailableProperty GetSupportedPatterns
IsTableItemPatternAvailableProperty GetSupportedPatterns
IsTablePatternAvailableProperty GetSupportedPatterns
IsTextPatternAvailableProperty GetSupportedPatterns
IsTogglePatternAvailableProperty GetSupportedPatterns
IsTransformPatternAvailableProperty GetSupportedPatterns
IsValuePatternAvailableProperty GetSupportedPatterns
IsWindowPatternAvailableProperty GetSupportedPatterns

Varios

Identificador de la propiedad Property Access
IsRequiredForFormProperty IsRequiredForForm
IsPasswordProperty IsPassword
ItemStatusProperty ItemStatus

Localización

Los proveedores de Automatización de la interfaz de usuario deben presentar las siguientes propiedades en el idioma del sistema operativo:

Propiedades y eventos

El concepto de eventos de cambio de propiedad está estrechamente relacionado con las propiedades de Automatización de la interfaz de usuario. Para las propiedades dinámicas, la aplicación cliente necesita una manera de saber que un valor de propiedad ha cambiado, por lo que puede actualizar su caché de información o reaccionar a la nueva información de alguna otra manera.

Los proveedores generan eventos cuando cambia algo en la interfaz de usuario. Por ejemplo, si se selecciona o se desactiva una casilla, la implementación del proveedor del patrón Toggle genera un evento de cambio de propiedad. Los proveedores pueden generar eventos de forma selectiva, dependiendo de si hay clientes en escucha de eventos o en escucha de eventos específicos.

No todos los cambios de propiedades generan eventos; esto depende totalmente de la implementación del proveedor de Automatización de la interfaz de usuario del elemento. Por ejemplo, los proveedores de proxy estándares para cuadros de lista no generan un evento cuando el elemento SelectionProperty cambia. En este caso, la aplicación debe estar en su lugar a la escucha de un elemento ElementSelectedEvent.

Los clientes se ponen a la escucha de eventos suscribiéndose a ellos. La suscripción a eventos supone la creación de métodos delegados que pueden controlar los eventos y, después, pasan los métodos a Automatización de la interfaz de usuario junto con los eventos específicos que se tratarán en esos métodos. Para los eventos de cambio de propiedad en concreto, los clientes deben implementar AutomationPropertyChangedEventHandler.

Consulte también