Implementar o padrão de controle de rolagem 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 artigo apresenta diretrizes e convenções para implementação IScrollProvider, incluindo informações sobre eventos e propriedades. Links para referências adicionais estão listados no final do tópico.
O ScrollPattern padrão de controle é usado para dar suporte a um controle que atua como um contêiner rolável para uma coleção de objetos filho. O controle não é necessário para usar barras de rolagem para suportar a funcionalidade de rolagem, embora isso geralmente aconteça.
Exemplo de um controle de rolagem que não usa barras de rolagem
Para obter exemplos de controles que implementam esse controle, 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 Scroll, observe as seguintes diretrizes e convenções:
Os filhos deste controle devem implementar IScrollItemProvider.
As barras de rolagem de um controle de contêiner não suportam o ScrollPattern padrão de controle. Em vez disso, devem apoiar o RangeValuePattern padrão de controlo.
Quando a rolagem é medida em porcentagens, todos os valores ou quantias relacionados à graduação da rolagem devem ser normalizados para um intervalo de 0 a 100.
HorizontallyScrollableProperty e VerticallyScrollableProperty são independentes do IsEnabledProperty.
Se HorizontallyScrollableProperty =
false
então HorizontalViewSizeProperty deve ser definido como 100% e HorizontalScrollPercentProperty deve ser definido como NoScroll. Da mesma forma, se VerticallyScrollableProperty =false
então VerticalViewSizeProperty deve ser definido como 100 por cento e VerticalScrollPercentProperty deve ser definido como .NoScroll Isso permite que um cliente de automação da interface do usuário use esses valores de propriedade dentro do método, SetScrollPercent evitando uma condição de corrida se uma direção em que o cliente não está interessado em rolar for ativada.HorizontalScrollPercent é específico da localidade. Definir HorizontalScrollPercent = 100.0 deve definir o local de rolagem do controle para o equivalente à sua posição mais à direita para idiomas como inglês que leem da esquerda para a direita. Como alternativa, para idiomas como o árabe que leem da direita para a esquerda, a configuração HorizontalScrollPercent = 100.0 deve definir o local de rolagem para a posição mais à esquerda.
Membros necessários para IScrollProvider
As seguintes propriedades e métodos são necessários para a implementação do IScrollProvider.
Membro obrigatório | Tipo de membro | Notas |
---|---|---|
HorizontalScrollPercent | Property | Nenhuma |
VerticalScrollPercent | Property | Nenhuma |
HorizontalViewSize | Property | Nenhuma |
VerticalViewSize | Property | Nenhuma |
HorizontallyScrollable | Property | Nenhuma |
VerticallyScrollable | Property | Nenhuma |
Scroll | Método | Nenhuma |
SetScrollPercent | Método | Nenhuma |
Esse padrão de controle não tem eventos associados.
Exceções
Os provedores devem lançar as seguintes exceções.
Tipo de Exceção | Condição |
---|---|
ArgumentException | Scroll lança essa exceção se um controle oferecer suporte a SmallIncrement valores exclusivamente para rolagem horizontal ou vertical, mas um LargeIncrement valor for passado. |
ArgumentException | SetScrollPercent lança essa exceção quando um valor que não pode ser convertido em duplo é passado. |
ArgumentOutOfRangeException | SetScrollPercent lança essa exceção quando um valor maior que 100 ou menor que 0 é passado (exceto -1, que é equivalente a NoScroll). |
InvalidOperationException | Ambos Scroll e SetScrollPercent lançar esta exceção quando é feita uma tentativa de rolar em uma direção sem suporte. |
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
- Visão geral da árvore de automação da interface do usuário
- Usar cache na automação da interface do usuário