Implementando o padrão de controle de grade de 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 IGridProvider, incluindo informações sobre propriedades, métodos e eventos. Os links para referências adicionais estão listados no final da visão geral.
O GridPattern padrão de controle é usado para dar suporte a controles que atuam como contêineres para uma coleção de elementos filho. Os filhos deste elemento devem implementar IGridItemProvider e ser organizados em um sistema de coordenadas lógicas bidimensionais que pode ser atravessado por linha e coluna. Para obter exemplos de controles que implementam esse padrão de 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 Grid, observe as seguintes diretrizes e convenções:
As coordenadas da grade são baseadas em zero, com a célula superior esquerda (ou superior direita, dependendo da localidade) tendo coordenadas (0, 0).
Se uma célula estiver vazia, um elemento de Automação da ContainingGrid Interface do Usuário ainda deverá ser retornado para dar suporte à propriedade dessa célula. Isso é possível quando o layout de elementos filho na grade é semelhante a uma matriz irregular (veja o exemplo abaixo).
Exemplo de um controle de grade com coordenadas vazias
Uma grade com um único item ainda é necessária para implementar IGridProvider se for logicamente considerada uma grade. O número de itens filho na grade é imaterial.
Linhas e colunas ocultas, dependendo da implementação do provedor, podem ser carregadas na árvore de Automação da Interface do Usuário e, portanto, serão refletidas RowCount nas propriedades e ColumnCount . Se as linhas e colunas ocultas ainda não tiverem sido carregadas, elas não devem ser contadas.
IGridProvider não permite a manipulação ativa de uma grelha; ITransformProvider deve ser implementado para habilitar essa funcionalidade.
Use a StructureChangedEventHandler para escutar alterações estruturais ou de layout na grade, como células que foram adicionadas, removidas ou mescladas.
Use a AutomationFocusChangedEventHandler para rastrear a travessia pelos itens ou células de uma grade.
Membros necessários para IGridProvider
As propriedades e métodos a seguir são necessários para implementar a interface IGridProvider.
Membros obrigatórios | Type | Notas |
---|---|---|
RowCount | Property | Nenhuma |
ColumnCount | Property | Nenhuma |
GetItem | 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 |
---|---|
ArgumentOutOfRangeException | GetItem - Se a coordenada da linha solicitada for maior que a coordenada ou a RowCount coordenada da coluna for maior que a ColumnCount. |
ArgumentOutOfRangeException | GetItem - Se qualquer uma das coordenadas de linha ou coluna solicitadas for inferior a zero. |
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
- Implementando o padrão de controle GridItem de automação da interface do usuário
- Visão geral da árvore de automação da interface do usuário
- Usar cache na automação da interface do usuário