Compartir a través de


Información general sobre eventos de automatización de la interfaz de usuario

Nota:

Esta documentación está pensada para desarrolladores de .NET Framework que desean usar las clases de automatización de la interfaz de usuario administradas definidas en el espacio de nombres System.Windows.Automation. Para obtener la información más reciente sobre la automatización de la interfaz de usuario, consulte API de Windows Automation: Automatización de la interfaz de usuario.

La notificación de eventos de Automatización de la interfaz de usuario de Microsoft es una característica clave para tecnologías de asistencia, como lectores de pantalla y lupa de pantalla. Estos clientes de automatización de la interfaz de usuario realizan un seguimiento de los eventos que generan los proveedores de automatización de la interfaz de usuario cuando sucede algo en la interfaz de usuario y usan la información para notificar a los usuarios finales.

La eficacias se mejora gracias a que las aplicaciones proveedoras son capaces de generar los eventos de manera selectiva (en función de si hay clientes suscritos a esos eventos) o de no generarlos en absoluto (si no hay clientes a la escucha de eventos).

Tipos de eventos

Los eventos de Automatización de la interfaz de usuario se dividen en las siguientes categorías.

Evento Descripción
Cambio de propiedad Se genera cuando se produce un cambio en un patrón de control o elemento de la automatización de la interfaz de usuario. Por ejemplo, si un cliente necesita supervisar un control de casilla de una aplicación, se puede registrar para escuchar si se produce un evento de cambio de propiedad en la propiedad ToggleState . Cuando se activa o desactiva el control de casilla, el proveedor genera el evento y el cliente puede actuar según sea necesario.
Acción del elemento Se genera cuando un cambio en la interfaz de usuario resulta de la actividad del usuario final o de acciones programáticas; por ejemplo, cuando se hace clic en un botón o se invoca a través de InvokePattern.
Cambio de estructura Se eleva cuando cambia la estructura del árbol de automatización de la interfaz de usuario. La estructura cambia cuando los nuevos elementos de la interfaz de usuario se vuelven visibles, ocultos o quitados en el escritorio.
Cambio de escritorio global Se genera cuando se producen acciones de interés global para el cliente, como cuando el foco cambia de un elemento a otro, o cuando se cierra una ventana.

Algunos eventos no significan necesariamente que el estado de la interfaz de usuario haya cambiado. Por ejemplo, si el usuario navega con la tecla de tabulación hasta un campo de entrada de texto y, a continuación, hace clic en un botón para actualizar el campo, se activa un TextChangedEvent aunque el usuario no haya cambiado realmente el texto. Al procesar un evento, puede ser necesario que una aplicación cliente compruebe si algo ha cambiado realmente antes de tomar medidas.

Los siguientes eventos se pueden generar incluso cuando el estado de la interfaz de usuario no ha cambiado.

  • AutomationPropertyChangedEvent (en función de la propiedad que cambie)

  • ElementSelectedEvent

  • InvalidatedEvent

  • TextChangedEvent

Identificadores de eventos de automatización de la interfaz de usuario

Los eventos de Automatización de la interfaz de usuario de Microsoft se identifican mediante AutomationEvent objetos . La Id propiedad contiene un valor que identifica de forma única el tipo de evento.

Los valores posibles para Id se proporcionan en la tabla siguiente, junto con el tipo utilizado para los argumentos de evento. Tenga en cuenta que los identificadores usados por los clientes y proveedores son campos con nombre idénticos de diferentes clases.

Identificador de cliente Identificador de proveedor Tipo de argumentos de evento
AutomationElement.AsyncContentLoadedEvent AutomationElementIdentifiers.AsyncContentLoadedEvent AsyncContentLoadedEventArgs
SelectionItemPattern.ElementAddedToSelectionEvent

SelectionItemPattern.ElementRemovedFromSelectionEvent

SelectionItemPattern.ElementSelectedEvent

SelectionPattern.InvalidatedEvent

InvokePattern.InvokedEvent

AutomationElement.LayoutInvalidatedEvent

AutomationElement.MenuClosedEvent

AutomationElement.MenuOpenedEvent

TextPattern.TextChangedEvent

TextPattern.TextSelectionChangedEvent

AutomationElement.ToolTipClosedEvent

AutomationElement.ToolTipOpenedEvent

WindowPattern.WindowOpenedEvent
SelectionItemPatternIdentifiers.ElementAddedToSelectionEvent

SelectionItemPatternIdentifiers.ElementRemovedFromSelectionEvent

SelectionItemPatternIdentifiers.ElementSelectedEvent

SelectionPatternIdentifiers.InvalidatedEvent

InvokePatternIdentifiers.InvokedEvent

AutomationElementIdentifiers.LayoutInvalidatedEvent

AutomationElementIdentifiers.MenuClosedEvent

AutomationElementIdentifiers.MenuOpenedEvent

TextPatternIdentifiers.TextChangedEvent

TextPatternIdentifiers.TextSelectionChangedEvent

AutomationElementIdentifiers.ToolTipClosedEvent

AutomationElementIdentifiers.ToolTipOpenedEvent

WindowPatternIdentifiers.WindowOpenedEvent
AutomationEventArgs
AutomationElement.AutomationFocusChangedEvent AutomationElementIdentifiers.AutomationFocusChangedEvent AutomationFocusChangedEventArgs
AutomationElement.AutomationPropertyChangedEvent AutomationElementIdentifiers.AutomationPropertyChangedEvent AutomationPropertyChangedEventArgs
AutomationElement.StructureChangedEvent AutomationElementIdentifiers.StructureChangedEvent StructureChangedEventArgs
WindowPattern.WindowClosedEvent WindowPatternIdentifiers.WindowClosedEvent WindowClosedEventArgs

Argumentos de eventos de automatización de la interfaz de usuario

Las siguientes clases encapsulan argumentos de evento.

Clase Descripción
AsyncContentLoadedEventArgs Contiene información sobre la carga asincrónica de contenido, incluido el porcentaje de carga completada.
AutomationEventArgs Contiene información sobre un evento simple que no requiere datos adicionales.
AutomationFocusChangedEventArgs Contiene información sobre un cambio en el foco de entrada de un elemento a otro. Los eventos de este tipo son generados por el sistema de automatización de la interfaz de usuario, no por los proveedores.
AutomationPropertyChangedEventArgs Contiene información sobre un cambio en un valor de propiedad de un elemento o patrón de control.
StructureChangedEventArgs Contiene información sobre un cambio en el árbol de automatización de la interfaz de usuario.
WindowClosedEventArgs Contiene información sobre el cierre de una ventana.

Todas las clases de argumento de evento contienen un EventId miembro. Este identificador está encapsulado en un AutomationEvent.

Los objetos AutomationEvent utilizados para identificar eventos son obtenidos por los proveedores a partir de campos en AutomationElementIdentifiers y clases de identificadores de patrones de control, como DockPatternIdentifiers. Las aplicaciones cliente obtienen los campos equivalentes de los campos en AutomationElement y de las clases de patrones de control como DockPattern.

Para obtener una lista de identificadores de eventos, consulte Eventos de automatización de la interfaz de usuario para clientes.

Consulte también