Implementando o padrão de controle de valor da automação da interface do usuário
Nota
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 System.Windows.Automation namespace. Para obter as informações mais recentes sobre a automação da interface do usuário, consulte API de automação do Windows: automação da interface do usuário.
Este tópico apresenta diretrizes e convenções para implementação IValueProvider, incluindo informações sobre eventos e propriedades. Links para referências adicionais estão listados no final do tópico.
O ValuePattern padrão de controle é usado para dar suporte a controles que têm um valor intrínseco que não abrange um intervalo e que pode ser representado como uma cadeia de caracteres. Essa cadeia de caracteres pode ser editável, dependendo do controle e suas configurações. Para obter exemplos de controles que implementam esse padrão, consulte Mapeamento de padrão de controle para clientes de automação da interface do usuário.
Orientações e convenções de aplicação
Ao implementar o padrão de controle de valor, observe as seguintes diretrizes e convenções:
- Controles como ListItem e TreeItem devem suportar ValuePattern se o valor de qualquer um dos itens é editável, independentemente do modo de edição atual do controle. O controle pai também deve oferecer suporte ValuePattern se os itens filho forem editáveis.
Exemplo de um item de lista editável
Os controles de edição de linha única suportam o acesso programático ao seu conteúdo implementando IValueProvidero . No entanto, os controles de edição de várias linhas não implementam IValueProvider, em vez disso, fornecem acesso ao seu conteúdo implementando ITextProvider.
Para recuperar o conteúdo textual de um controle de edição de várias linhas, o controle deve implementar ITextProvider. No entanto, ITextProvider não suporta a definição do valor de um controle.
IValueProvider não suporta a recuperação de informações de formatação ou valores de substring. Implemente ITextProvider nesses cenários.
IValueProviderdeve ser implementado por controles como o controle de seleção do Seletor de Cores do Microsoft Word (ilustrado abaixo), que oferece suporte ao mapeamento de cadeia de caracteres entre um valor de cor (por exemplo, "amarelo") e uma estrutura RGB interna equivalente.
Exemplo de mapeamento de cadeia de caracteres de amostra de cores
- Um controle deve ter seu IsEnabledProperty definido como
true
e seu IsReadOnlyProperty definido comofalse
antes de permitir uma chamada para SetValue.
Membros necessários para IValueProvider
As seguintes propriedades e métodos são necessários para a implementação do IValueProvider.
Membros obrigatórios | Tipo de membro | Notas |
---|---|---|
IsReadOnlyProperty | Property | Nenhuma |
ValueProperty | Property | Nenhuma |
SetValue | Método | Nenhuma |
Exceções
Os provedores devem lançar as seguintes exceções.
Tipo de exceção | Condição |
---|---|
InvalidOperationException | SetValue - Se as informações específicas da localidade forem passadas para um controle em um formato incorreto, como uma data formatada incorretamente. |
ArgumentException | SetValue - Se um novo valor não pode ser convertido de uma cadeia de caracteres para um formato que o controle reconhece. |
ElementNotEnabledException | SetValue - Quando é feita uma tentativa de manipular um controle que não está habilitado. |
Consulte também
- Visão geral dos padrões de controle de automação da interface do usuário
- Suporte a 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
- Exemplo de inserção de texto ValuePattern
- Visão geral da árvore de automação da interface do usuário
- Usar cache na automação da interface do usuário