Información general sobre eventos 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.
La notificación de eventos de automatización de la interfaz de usuario de Microsoft es una característica clave para las tecnologías de asistencia, entre las que se incluyen lectores de pantalla y lupas. Estos clientes de automatización de la interfaz de usuario, realizan un seguimiento de los eventos que los proveedores de automatización de la interfaz de usuario generan cuando sucede algo en la UI, y usan esa 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 pueden clasificarse de la siguiente manera.
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 el control de casilla se activa o desactiva, el proveedor genera el evento y el cliente puede actuar según sea necesario. |
Acción de elemento | Se genera cuando se produce un cambio en la interfaz de usuario como resultado de la actividad del usuario final o de programación, por ejemplo, cuando se hace clic en un botón o se invoca mediante InvokePattern. |
Cambio de estructura | Se genera cuando cambia la estructura del árbol de automatización de la interfaz de usuario. La estructura cambia cuando se hacen visibles, ocultan o quitan elementos nuevos de la interfaz de usuario en el escritorio. |
Cambio de escritorio global | Se genera cuando se producen acciones de interés global para el cliente, por ejemplo, cuando el foco cambia de un elemento a otro o cuando se cierra una ventana. |
Algunos eventos no implican necesariamente un cambio en el estado de la UI. Por ejemplo, si el usuario se desplaza presionando la tecla TAB hasta un campo de entrada de texto y después hace clic en un botón para actualizar el campo, se genera un evento TextChangedEvent
aunque, en realidad, el usuario no modifique el texto. Al procesar un evento, puede ser necesario que la aplicación cliente compruebe si realmente se ha producido un cambio antes de realizar cualquier acción.
Los siguientes eventos se pueden generar incluso si no cambia el estado de la UI.
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 están definidos por los objetos AutomationEvent. La propiedad Id contiene un valor que identifica de forma única el tipo de evento.
En la tabla siguiente se indican los valores posibles de Id , junto con el tipo que se usa para los argumentos del evento. Observe que los identificadores usados por clientes y proveedores son campos de idéntico nombre y clases diferentes.
Argumentos de eventos de automatización de la interfaz de usuario
Las clases siguientes encapsulan los argumentos de eventos.
Clase | Descripción |
---|---|
AsyncContentLoadedEventArgs | Contiene información sobre la carga asincrónica de contenido, como el porcentaje de carga completada. |
AutomationEventArgs | Contiene información sobre un evento simple que no requiere datos adicionales. |
AutomationFocusChangedEventArgs | Contiene información sobre el foco de entrada, que pasa de un elemento a otro. Los eventos de este tipo los genera el sistema de automatización de la interfaz de usuario, no 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 los argumentos de evento contienen un miembro EventId . Este identificador se encapsula en un AutomationEvent.
Los proveedores obtienen los objetos AutomationEvent , usados para identificar los eventos, a partir de los campos de AutomationElementIdentifiers y de las clases de identificadores de patrones de control como DockPatternIdentifiers. Las aplicaciones cliente obtienen los campos equivalentes a partir de campos de AutomationElement y de clases de patrones de control como DockPattern.
Para obtener una lista de identificadores de eventos, consulte UI Automation Events for Clients.