Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. 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 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 de utilizador, consulte API de automação do Windows: Automação da Interface de Utilizador.
Este tópico apresenta diretrizes e convenções para implementação IInvokeProvider, incluindo informações sobre eventos e propriedades. Links para referências adicionais estão listados no final do tópico.
O InvokePattern padrão de controle é usado para suportar controles que não mantêm o estado quando ativados, mas iniciam ou executam uma única ação inequívoca. Os controlos que mantêm o estado, como as caixas de seleção e os botões de opção, devem implementar IToggleProvider e ISelectionItemProvider, respetivamente. Para obter exemplos de controles que implementam o padrão de controle Invoke, consulte Control Pattern Mapping for UI Automation Clients.
Orientações e convenções de aplicação
Ao implementar o padrão de controle Invoke, observe as seguintes diretrizes e convenções:
Os controlos implementam IInvokeProvider caso o mesmo comportamento não seja fornecido por outro provedor de padrão de controlo. Por exemplo, se o método Invoke em um controlo executa a mesma ação que o método Expand ou Collapse, o controlo não deve implementar IInvokeProvider.
Invocar um controle geralmente é realizado clicando ou clicando duas vezes ou pressionando ENTER, um atalho de teclado predefinido ou alguma combinação alternativa de pressionamentos de teclas.
InvokedEvent é acionada num controlo que foi ativado (como resposta a um controlo que executa a sua ação associada). Se possível, o evento deve ser gerado após o controle ter concluído a ação e retornado sem bloqueio. O evento Invoked deve ser acionado antes de processar o pedido Invoke nos seguintes cenários:
Não é possível ou prático esperar até que a ação esteja concluída.
A ação requer interação do usuário.
A ação é demorada e fará com que o cliente chamador bloqueie por um período significativo de tempo.
Se invocar o controle tiver efeitos colaterais significativos, esses efeitos colaterais devem ser expostos através da HelpText propriedade. Por exemplo, mesmo que Invoke não esteja associado à seleção, Invoke pode fazer com que outro controle seja selecionado.
Os efeitos de passagem do rato (ou de hovering) geralmente não constituem um evento de invocação. No entanto, os controlos que executam uma ação (em vez de causar um efeito visual) com base no estado de sobrevoo devem suportar o InvokePattern padrão de controlo.
Observação
Essa implementação é considerada um problema de acessibilidade se o controle puder ser invocado apenas como resultado de um efeito colateral relacionado ao mouse.
Invocar um controle é diferente de selecionar um item. No entanto, dependendo do controle, invocá-lo pode fazer com que o item seja selecionado como um efeito colateral. Por exemplo, invocar um item de lista de documentos do Microsoft Word na pasta Meus Documentos seleciona o item e abre o documento.
Um elemento pode desaparecer da árvore de automação da interface do usuário imediatamente após ser invocado. A solicitação de informações do elemento fornecido pelo retorno de chamada do evento pode falhar como resultado. A pré-busca de informações armazenadas em cache é a solução recomendada.
Os controles podem implementar vários padrões de controle. Por exemplo, o controle Cor de preenchimento na barra de ferramentas do Microsoft Excel implementa tanto o InvokePattern como o ExpandCollapsePattern padrões de controlo. ExpandCollapsePattern Expõe o menu e preenche InvokePattern a seleção ativa com a cor escolhida.
Membros necessários para IInvokeProvider
As seguintes propriedades e métodos são necessários para a implementação do IInvokeProvider.
| Membros obrigatórios | Tipo de membro | Observações |
|---|---|---|
| Invoke | método |
Invoke é uma chamada assíncrona e deve retornar imediatamente sem bloqueio. Esse comportamento é particularmente crítico para controles que, direta ou indiretamente, iniciam uma caixa de diálogo modal quando invocados. Qualquer cliente de automação da interface do usuário que instigou o evento permanecerá bloqueado até que a caixa de diálogo modal seja fechada. |
Exceções
Os provedores devem lançar as seguintes exceções.
| Tipo de Exceção | Condição |
|---|---|
| ElementNotEnabledException | Se o controle não estiver habilitado. |
Ver também
- Visão geral dos padrões de controle de automação da interface do usuário
- Suportar Padrões de Controle em um Provedor de Automação de Interface do Usuário
- Padrões de Controle de Automação da Interface do Usuário para Clientes
- Invoque um controle usando a automação da interface do usuário
- Visão geral da árvore de automação da interface do usuário
- Use o armazenamento em cache na automação da interface do utilizador