Partilhar via


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

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

ElementNotEnabledException

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

Use Caching in UI Automation

Conceitos

Visão Geral de Padrões de Controle de Automação de Interface de Usuário

Padrões de Controle para Clientes de Automação de IU

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