Implementando o padrão de controle Selection de automação de interface do usuário

Observação

Esta documentação destina-se a desenvolvedores de .NET Framework que querem usar as classes da 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 do Usuário, confira API de Automação do Windows: Automação da Interface do Usuário.

Este tópico apresenta diretrizes e convenções para implementar ISelectionProvider, incluindo informações sobre eventos e propriedades. Links para referências adicionais são listados no final do tópico.

O padrão de controle SelectionPattern é usado para dar suporte a controles que atuam como contêineres para uma coleção de itens filho selecionáveis. O filho desse elemento deve implementar ISelectionItemProvider. Para ver exemplos de controles que implementam esse padrão de controle, confira Mapeamento de padrões de controle para clientes da Automação da Interface do Usuário.

Diretrizes e convenções de implementação

Ao implementar o padrão de controle Selection, observe as seguintes diretrizes e convenções:

  • Controles que implementam ISelectionProvider permitem que itens filho únicos ou múltiplos sejam selecionados. Por exemplo, a caixa de listagem, o modo de exibição de lista e o modo de exibição de árvore dão suporte a várias seleções, enquanto a caixa de combinação, o controle deslizante e o grupo de botões de opção dão suporte à seleção única.

  • Controles que têm um intervalo mínimo, máximo e contínuo, como o controle deslizante Volume, devem implementar IRangeValueProvider em vez de ISelectionProvider.

  • Controles de seleção única que gerenciam controles filho que implementam IRawElementProviderFragmentRoot, como o controle deslizante Resolução de Tela na caixa de diálogo Propriedades de Exibição ou o controle de seleção Seletor de Cor do Microsoft Word (ilustrado abaixo), devem implementar ISelectionProvider; seus filhos devem implementar IRawElementProviderFragment e ISelectionItemProvider.

Color picker with yellow highlighted. Exemplo de Mapeamento de Cadeias de Caracteres de Amostra de Cores

  • Os menus não dão suporte a SelectionPattern. Se você estiver trabalhando com itens de menu que incluem gráficos e texto (como os itens do Painel de Visualização no menu Exibir do Microsoft Outlook) e precisar transmitir o estado, deverá implementar IToggleProvider.

Membros necessários para ISelectionProvider

As propriedades, os métodos e os eventos a seguir são necessários para a interface ISelectionProvider.

Membros necessários Type Observações
CanSelectMultiple Propriedade Deve dar suporte a eventos de alteração de propriedade usando AddAutomationPropertyChangedEventHandler e RemoveAutomationPropertyChangedEventHandler.
IsSelectionRequired Propriedade Deve dar suporte a eventos de alteração de propriedade usando AddAutomationPropertyChangedEventHandler e RemoveAutomationPropertyChangedEventHandler.
GetSelection Método Nenhum
InvalidatedEvent Evento Gerado quando uma seleção em um contêiner é alterada significativamente e exige o envio de mais eventos de adição e remoção do que a constante InvalidateLimit permite.

As propriedades IsSelectionRequired e CanSelectMultiple podem ser dinâmicas. Por exemplo, o estado inicial de um controle pode não ter nenhum item selecionado por padrão, indicando que IsSelectionRequired é false. No entanto, depois que um item é selecionado, o controle sempre deve ter pelo menos um item selecionado. Da mesma forma, em casos raros, um controle pode permitir que vários itens sejam selecionados na inicialização, mas posteriormente permitir que apenas seleções únicas sejam feitas.

Exceções

Os provedores devem gerar as exceções a seguir.

Tipo de exceção Condição
ElementNotEnabledException Se o controle não está habilitado.
InvalidOperationException Se o controle está oculto.

Confira também