Implementando o padrão de controle Invoke de automação de interface de usuário
Este tópico apresenta diretrizes e convenções para a implementação IInvokeProvedorIncluindo informações sobre eventos e propriedades.Links para referências adicionais são listadas ao final do tópico.
O InvokePattern Controle padrão é usada para oferecer suporte Controles que não Manter estado quando ativado, mas em vez disso, iniciar ou executar uma ação única, não ambíguo.Controles que mantêm o estado, como Marcar caixas e botões de opção, em vez disso, deve implementar IToggleProvider e ISelectionItemProvider respectivamente.Para obter exemplos de controles que implementam o padrão de controle Invoke, consulte Mapeamento de Padrão de Controles para Clientes de Automação de IU.
Este tópico contém as seguintes seções.
- Orientações e Convenções de Implementação
- Participantes Necessários para IInvokeProvider
- Exceções
- Tópicos relacionados
Orientações e Convenções de Implementação
Ao implementar o padrão de controle Invoke, observe as seguintes diretrizes e convenções:
Implementam controles IInvokeProvedor Se o mesmo comportamento não é exposto Através outro controle padrão o provedor.Por exemplo, se a [M:System.Windows.Automation.InvokePadrão.Invoke] Método em um controle por Formulários a mesma ação que o [M:System.Windows.Automation.ExpandCollapsePadrão.Expand] ou Collapse Método, o controle não deve implementar IInvokeProvedor.
Chamar um controle é geralmente executado clicando duas vezes ou pressionando ENTER, uma atalho de teclado predefinido ou alguma combinação de pressionamentos de teclas alternativa.
InvokedEvent é gerado em um controle que tiver sido ativado (como uma resposta a um controle de executar a ação associada).Se possível, o evento deve ser gerado após o controle concluir a ação e retornar sem bloqueio.O evento Invoked deve ser gerado antes de atender a solicitação Invoke nas seguintes situações:
Não é possível ou prático esperar até que a ação seja concluída.
A ação requer interação com usuário.
A ação é demorada e fará com o cliente que chamou bloqueie por um período de tempo significativo.
Se invocar o controle tiver efeitos colaterais significativos, esses efeitos colaterais devem ser expostas através de HelpText Propriedade.Por exemplo, embora Invoke() não é Associado à seleção, Invoke() pode causar um outro controle a ser selecionado.
Efeitos de foco (ou mouse-sobre) efeitos geralmente não constituem um evento Invoked.No entanto, os controles que executar uma ação (em oposição a causa um efeito visual) com base no estado em foco devem oferecem suporte a InvokePattern Padrão de controle.
Observação: |
---|
Essa implementação é considerada um problema de acessibilidade se o controle pode ser chamado somente como resultado de um efeito colateral relacionado ao mouse. |
Chamar um controle é diferente de selecionar um item.No entanto, de acordo com o controle, chamá-lo pode fazer com que o item selecionado torne-se selecionado como um efeito colateral.Por exemplo, chamar um Item lista do documento na pasta Meus documentos Ambos seleciona o item e abre o documento.
Um elemento pode desaparecer a partir de Árvore imediatamente após sendo chamado.Solicitar informações do elemento fornecido pelo retorno de chamada do evento pode falhar como resultado.Pre-obter as informações em cache é a solução recomendada.
Os controles podem implementar vários padrões de controle.Por exemplo, o controle de cor de Preencher na Barra de Ferramentas implementa ambos o InvokePattern e o ExpandCollapsePattern Controlar os padrões.ExpandCollapsePattern Expõe o menu e a InvokePattern Preenche a seleção Ativo com a cor escolhida.
Participantes Necessários para IInvokeProvider
O seguintes propriedades e métodos estão necessários para implementação IInvokeProvedor.
Membros Requeridos |
Tipo do membro |
Anotações |
---|---|---|
Invoke() |
Método |
Invoke() é uma chamada assíncrona e deve retornar imediatamente sem bloqueio. Esse comportamento é particularmente importante para controles que, direta ou indiretamente, iniciam uma caixa de diálogo restrita quando chamado.Qualquer cliente de automação de interface do usuário que atraiu o evento permanecerá bloqueada até que a caixa de diálogo restrita é fechada. |
Exceções
Provedores precisam lançar as seguintes exceções.
Tipo de exceção |
Condição |
---|---|
Se o controle não estiver ativado. |
Consulte também
Tarefas
Support Control Patterns in a UI Automation Provider
Invocando um Controle Utilizando Automação de IU
Conceitos
Visão Geral de Padrões de Controle de Automação de Interface de Usuário