Visão geral sobre eventos de automação de interface do usuário

Observação

Esta documentação destina-se a desenvolvedores de .NET Framework que querem usar as classes da Automação da Interface do Usuário gerenciadas definidas no namespace System.Windows.Automation. Para obter as informações mais recentes sobre a Automação da Interface do Usuário, confira API de Automação do Windows: Automação da Interface do Usuário.

A notificação de eventos da Automação da Interface do Usuário da Microsoft é um recurso fundamental para tecnologias assistenciais, como leitores e lupas de tela. Esses clientes da Automação da Interface do Usuário acompanham os eventos gerados pelos provedores da Automação da Interface do Usuário quando algo acontece na interface do usuário e usam as informações para notificar os usuários finais.

A eficiência é aprimorada permitindo que os aplicativos do provedor acionem eventos seletivamente, dependendo se um cliente é inscrito nesses eventos ou não, caso nenhum cliente esteja escutando eventos.

Tipos de eventos

Os eventos de Automação da Interface do Usuário estão nas seguintes categorias.

Evento Descrição
Alteração da propriedade Gerado quando uma propriedade em um padrão de controle ou elemento da Automação da Interface do Usuário é alterada. Por exemplo, se um cliente precisa monitorar o controle de uma caixa de seleção do aplicativo, ele pode se registrar para escutar um evento de alteração de propriedade na propriedade ToggleState. Quando o controle da caixa de seleção é marcado ou desmarcado, o provedor dispara o evento e o cliente pode executar ações, conforme necessário.
Ação de elemento Gerado quando uma alteração na interface do usuário resulta de uma atividade programática ou do usuário final. Por exemplo, quando um botão recebe um clique ou é invocado por meio de InvokePattern.
Alteração de estrutura Gerado quando a estrutura da árvore da Automação da Interface do Usuário é alterada. A estrutura muda quando novos itens da interface do usuário se tornam visíveis, ocultos ou são removidos da área de trabalho.
Alteração global da área de trabalho Gerado quando ocorrem ações de interesse global do cliente, como quando o foco muda de um elemento para outro ou quando uma janela é fechada.

Alguns eventos não indicam necessariamente que o estado da interface do usuário mudou. Por exemplo, se o usuário vai para um campo de entrada de texto e clica em um botão para atualizar o campo, um TextChangedEvent é gerado, mesmo que o usuário não tenha realmente mudado o texto. Ao processar um evento, pode ser necessário que o aplicativo cliente verifique se algo realmente mudou antes de executar uma ação.

Os eventos a seguir podem ser gerados mesmo quando o estado da interface do usuário não é alterado.

  • AutomationPropertyChangedEvent (dependendo da propriedade que foi alterada)

  • ElementSelectedEvent

  • InvalidatedEvent

  • TextChangedEvent

Identificadores de eventos da Automação da Interface do Usuário

Os eventos da Automação da Interface do Usuário da Microsoft são identificados por objetos AutomationEvent. A propriedade Id contém um valor que identifica exclusivamente o tipo de evento.

Os valores possíveis para Id são fornecidos na tabela a seguir, com o tipo usado para argumentos de evento. Observe que os identificadores usados por clientes e provedores são campos de nome idêntico de classes diferentes.

Identificador do cliente Identificador do provedor Tipo de argumentos de eventos
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 da Automação da Interface do Usuário

As classes a seguir encapsulam argumentos de eventos.

Classe Descrição
AsyncContentLoadedEventArgs Contém informações sobre o carregamento assíncrono do conteúdo, incluindo o percentual de carregamento concluído.
AutomationEventArgs Contém informações sobre um evento simples que não exige dados extras.
AutomationFocusChangedEventArgs Contém informações sobre uma alteração no foco de entrada de um elemento para outro. Os eventos desse tipo são gerados pelo sistema da Automação da Interface do Usuário, não pelos provedores.
AutomationPropertyChangedEventArgs Contém informações sobre uma alteração em um valor de propriedade de um elemento ou um padrão de controle.
StructureChangedEventArgs Contém informações sobre uma alteração na árvore da Automação da Interface do Usuário.
WindowClosedEventArgs Contém informações sobre um fechamento de janela.

Todas as classes de argumento de evento contêm um membro EventId. Esse identificador é encapsulado em um AutomationEvent.

Os objetos AutomationEvent usados para identificar os eventos são obtidos pelos provedores nos campos de AutomationElementIdentifiers e nas classes de identificador de padrão de controle, como DockPatternIdentifiers. Os campos equivalentes são obtidos pelos aplicativos cliente nos campos de AutomationElement e nas classes de padrão de controle, como DockPattern.

Para ver a lista de identificadores de eventos, confira Eventos da Automação da Interface do Usuário para clientes.

Confira também