Partilhar via


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

Nota

Esta documentação destina-se a desenvolvedores do .NET Framework que desejam usar as classes de automação da interface do usuário gerenciadas definidas no System.Windows.Automation namespace. Para obter as informações mais recentes sobre a automação da interface do usuário, consulte 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 de tela e lupas de tela. Esses clientes de Automação da Interface do Usuário rastreiam eventos gerados pelos provedores de 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 é melhorada ao permitir que os aplicativos do provedor levantem eventos seletivamente, dependendo se algum cliente está inscrito nesses eventos, ou não, se nenhum cliente estiver ouvindo quaisquer eventos.

Tipos de Eventos

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

Evento Descrição
Mudança de propriedade Gerado quando uma propriedade em um elemento de automação da interface do usuário ou padrão de controle muda. Por exemplo, se um cliente precisar monitorar o controle de caixa de seleção de um aplicativo, ele poderá se registrar para ouvir um evento de alteração de ToggleState propriedade na propriedade. Quando o controle de caixa de seleção está marcado ou desmarcado, o provedor gera o evento e o cliente pode agir conforme necessário.
Ação do elemento Gerado quando uma alteração na interface do usuário resulta de usuário final ou atividade programática; por exemplo, quando um botão é clicado ou invocado através do InvokePattern.
Mudança de estrutura Gerado quando a estrutura da árvore de automação da interface do usuário muda. A estrutura muda quando novos itens da interface do usuário ficam visíveis, ocultos ou removidos na área de trabalho.
Mudança global na á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 se fecha.

Alguns eventos não significam necessariamente que o estado da interface do usuário foi alterado. Por exemplo, se o usuário tabular para um campo de entrada de texto e, em seguida, clicar em um botão para atualizar o campo, um TextChangedEvent será gerado mesmo que o usuário não tenha realmente alterado o texto. Ao processar um evento, pode ser necessário que um aplicativo cliente verifique se algo realmente mudou antes de tomar uma ação.

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 fornecidos na tabela a seguir, juntamente com 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 diferentes classes.

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 evento de automação da interface do usuário

As classes a seguir encapsulam argumentos de evento.

Classe Description
AsyncContentLoadedEventArgs Contém informações sobre o carregamento assíncrono de conteúdo, incluindo a porcentagem 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 no valor de uma propriedade de um elemento ou padrão de controle.
StructureChangedEventArgs Contém informações sobre uma alteração 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 AutomationEventarquivo .

Os AutomationEvent objetos usados para identificar eventos são obtidos por provedores a partir de campos e AutomationElementIdentifiers classes de identificador de padrão de controle, como DockPatternIdentifiers. Os campos equivalentes são obtidos por aplicativos cliente a partir de campos em AutomationElement e 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