Compartilhar via


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

Observação

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

A notificação de evento da Automação da Interface do Usuário da Microsoft é um recurso fundamental para tecnologias assistivas, como leitores de tela e lupas de tela. Esses clientes de Automação de Interface do Usuário rastreiam eventos gerados por provedores de Automação de 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 se enquadram nas categorias a seguir.

Acontecimento Descrição
Alteração de 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 do 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 é alterada quando novos itens de interface do usuário ficam visíveis, ocultos ou removidos na área de trabalho.
Alteração global da área de trabalho Gerado quando ocorrem ações de interesse global para o cliente, como quando o foco muda de um elemento para outro ou quando uma janela é fechada.

Alguns eventos não significam necessariamente que o estado da interface do usuário foi alterado. Por exemplo, se o usuário navega usando a tecla Tab para um campo de entrada de texto e, em seguida, clica em um botão para atualizar o campo, um TextChangedEvent será acionado mesmo se o usuário realmente não altera o texto. Ao processar um evento, pode ser necessário que um aplicativo cliente verifique se algo realmente foi alterado antes de tomar medidas.

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

  • AutomationPropertyChangedEvent (dependendo da propriedade que foi alterada)

  • ElementSelectedEvent

  • InvalidatedEvent

  • TextChangedEvent

Identificadores de eventos de automação da interface do usuário

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

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

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

As classes a seguir encapsulam os argumentos de evento.

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 requer dados extras.
AutomationFocusChangedEventArgs Contém informações sobre uma alteração no foco de entrada de um elemento para outro. Eventos desse tipo são gerados pelo sistema de Automação da Interface do Usuário, não por provedores.
AutomationPropertyChangedEventArgs Contém informações sobre uma alteração em um valor de propriedade de um elemento ou padrão de controle.
StructureChangedEventArgs Contém informações sobre uma mudança na árvore de automação da interface do usuário.
WindowClosedEventArgs Contém informações sobre o fechamento de uma janela.

Todas as classes de argumento de evento contêm um EventId membro. 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 aplicativos cliente obtêm os campos equivalentes a partir de campos em AutomationElement e de classes de padrão de controle, como DockPattern.

Para obter uma lista de identificadores de eventos, consulte eventos de automação da interface do usuário para clientes.

Consulte também