Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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.
Este tópico descreve como os eventos de Automação da Interface do Usuário da Microsoft são usados por clientes de Automação da Interface do Usuário.
Automação da Interface do Usuário permite que os clientes assinem eventos que interessam. Essa funcionalidade melhora o desempenho eliminando a necessidade de sondar continuamente todos os elementos da interface do usuário no sistema para ver se alguma informação, estrutura ou estado foi alterado.
A eficiência também é aprimorada pela capacidade de escutar eventos somente dentro de um escopo definido. Por exemplo, um cliente pode escutar eventos de alteração de foco em todos os elementos de Automação de Interface do Usuário na árvore ou em apenas um elemento e seus descendentes.
Observação
Não suponha que todos os eventos possíveis sejam gerados por um provedor de Automação de Interface do Usuário da Microsoft. Por exemplo, nem todas as alterações de propriedade fazem com que os eventos sejam gerados pelos provedores de proxy padrão para controles Windows Forms e Win32.
Para obter uma visão mais ampla dos eventos de Automação da Interface do Usuário, consulte a Visão geral dos eventos de automação da interface do usuário.
Assinando eventos
Os aplicativos cliente assinam eventos de um tipo específico registrando um manipulador de eventos usando um dos métodos a seguir.
| Método | Tipo de evento | Tipo de argumentos de evento | Tipo de Delegado |
|---|---|---|---|
| AddAutomationFocusChangedEventHandler | Alteração de foco | AutomationFocusChangedEventArgs | AutomationFocusChangedEventHandler |
| AddAutomationPropertyChangedEventHandler | Alteração de propriedade | AutomationPropertyChangedEventArgs | AutomationPropertyChangedEventHandler |
| AddStructureChangedEventHandler | Alteração de estrutura | StructureChangedEventArgs | StructureChangedEventHandler |
| AddAutomationEventHandler | Todos os outros eventos, identificados por um AutomationEvent | AutomationEventArgs ou WindowClosedEventArgs | AutomationEventHandler |
Antes de chamar o método, você deve criar um método delegado para lidar com o evento. Se preferir, você pode lidar com diferentes tipos de eventos em um único método e passar esse método em várias chamadas para um dos métodos na tabela. Por exemplo, um único AutomationEventHandler pode ser configurado para lidar com vários eventos de forma diferente de acordo com o EventId.
Observação
Para processar eventos de fechamento de janela, converta o tipo de argumento passado para o manipulador de eventos para WindowClosedEventArgs. Como o elemento de Automação da Interface do Usuário da Microsoft para a janela não é mais válido, você não pode usar o sender parâmetro para recuperar informações; use GetRuntimeId em vez disso.
Cuidado
Se o aplicativo puder receber eventos de sua própria interface do usuário, não use o thread da interface do usuário do aplicativo para assinar eventos ou cancelar a assinatura. Fazer isso pode levar a um comportamento imprevisível. Para obter mais informações, consulte Automação da Interface do Usuário Problemas de Threading.
Ao desligar ou quando Automação da Interface do Usuário eventos não são mais de interesse para o aplicativo, Automação da Interface do Usuário clientes devem chamar um dos métodos a seguir.
| Método | Descrição |
|---|---|
| RemoveAutomationEventHandler | Cancela o registro de um manipulador de eventos que foi registrado usando AddAutomationEventHandler. |
| RemoveAutomationFocusChangedEventHandler | Cancela o registro de um manipulador de eventos que foi registrado usando AddAutomationFocusChangedEventHandler. |
| RemoveAutomationPropertyChangedEventHandler | Cancela o registro de um manipulador de eventos que foi registrado usando AddAutomationPropertyChangedEventHandler. |
| RemoveAllEventHandlers | Cancela o registro de todos os manipuladores de eventos registrados. |
Para ver um exemplo de código, consulte Assinar eventos de automação da interface do usuário.
Consulte também
- Assinar eventos de automação da interface do usuário
- Visão geral de eventos de automação da interface do usuário
- Descrição Geral das Propriedades do Automação da Interface do Usuário
- Exemplo de TrackFocus