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 apresenta diretrizes e convenções para a implementação de IInvokeProvider, incluindo informações sobre eventos e propriedades. Links para referências adicionais são listados no final do tópico.
O InvokePattern padrão de controle é usado para dar suporte a controles que não mantêm o estado quando ativado, mas sim iniciam ou executam uma única ação inequívoca. Controles que mantêm o estado, como caixas de seleção e botões de opção, devem implementar IToggleProvider e ISelectionItemProvider, respectivamente. Para obter exemplos de controles que implementam o padrão de controle Invoke, consulte Mapeamento de padrões de controle para clientes de automação de interface do usuário.
Diretrizes e convenções de implementação
Ao implementar o padrão de controle Invoke, observe as seguintes diretrizes e convenções:
Os controles implementam IInvokeProvider se o mesmo comportamento não for exposto por meio de outro provedor de padrão de controle. Por exemplo, se o método Invoke de um controle executar a mesma ação que os métodos Expand ou Collapse, o controle não deverá implementar IInvokeProvider.
A invocação de um controle geralmente é executada clicando ou clicando duas vezes ou pressionando ENTER, um atalho de teclado predefinido ou alguma combinação alternativa de pressionamentos de teclas.
InvokedEvent é gerado em um controle que foi ativado (como uma resposta a um controle que executa sua ação associada). Se possível, o evento deve ser gerado após o controle concluir a ação e retornado sem bloqueio. O evento Invocado deve ser acionado antes de atender à solicitação Invoke nos seguintes cenários:
Não é possível ou prático aguardar até que a ação seja concluída.
A ação requer interação do usuário.
A ação é demorada e fará com que o cliente de chamada bloqueie por um período significativo de tempo.
Se a invocação do controle tiver efeitos colaterais significativos, esses efeitos colaterais deverão ser expostos por meio 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 focalizar (ou focalizar com o mouse) geralmente não constituem um evento Invocado. No entanto, os controles que executam uma ação (em vez de causar um efeito visual) com base no estado de sobrevoo devem dar suporte ao padrão de controle InvokePattern.
Observação
Essa implementação será 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 da seleção de 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 busca prévia de informações armazenadas em cache é a solução alternativa 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 os padrões de controle InvokePattern e ExpandCollapsePattern. ExpandCollapsePattern expõe o menu e preenche InvokePattern a seleção ativa com a cor escolhida.
Membros necessários para IInvokeProvider
As propriedades e os métodos a seguir são necessários para implementar IInvokeProvider.
| Membros necessários | Tipo de membro | Anotaçõ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 invocado. Qualquer cliente de Automação de 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 gerar as exceções a seguir.
| Tipo de exceção | Condição |
|---|---|
| ElementNotEnabledException | Se o controle não estiver habilitado. |
Consulte também
- Visão geral dos padrões de controle de automação da interface do usuário
- Padrões de controle de suporte em um provedor de automação da interface do usuário
- Padrões de Controle para Clientes de Automação de IU
- Invocar um controle usando a automação da interface do usuário
- Visão geral da árvore de automação da interface do usuário
- Usar armazenamento em cache em automação de interface do usuário