Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
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 namespace System.Windows.Automation. Para obter as informações mais recentes sobre a automação da interface de utilizador, consulte API de automação do Windows: Automação da Interface de Utilizador.
Este tópico fornece informações sobre o suporte de automação da interface do usuário da Microsoft para o tipo de controle DataItem. Na Automação da Interface do Usuário, um tipo de controle é um conjunto de condições que um controle deve atender para usar a ControlTypeProperty propriedade. As condições incluem diretrizes específicas para a estrutura da árvore de Automação da Interface do Usuário, valores de propriedade da Automação da Interface do Usuário e padrões de controle.
Uma entrada em uma lista de contatos é um exemplo de um controle de item de dados. Um controle de item de dados contém informações que são de interesse para um usuário final. É mais complicado do que o simples item de lista porque contém informações mais ricas.
As seções a seguir definem a estrutura da árvore de Automação da Interface do Usuário, propriedades, padrões de controle e eventos necessários para o tipo de controle DataItem. Os requisitos de automação da interface do usuário se aplicam a todos os controles de item de dados, seja Windows Presentation Foundation (WPF), Win32 ou Windows Forms.
Estrutura de árvore de automação da interface do usuário necessária
A tabela a seguir descreve a exibição de controle e a exibição de conteúdo da árvore de Automação da Interface do Usuário que pertence aos controles de item de dados e descreve o que pode ser contido em cada exibição. Para obter mais informações sobre a árvore de automação da interface do usuário, consulte Visão geral da árvore de automação da interface do usuário .
| Árvore de automação da interface do usuário - Visualização de controle | Árvore de automação da interface do usuário - Visualização de conteúdo |
|---|---|
| DataItem - Varia (0 ou mais; pode ser estruturado em hierarquia) |
DataItem - Varia (0 ou mais; pode ser estruturado em hierarquia) |
Um elemento de item de dados em uma grade de dados pode hospedar uma variedade de objetos, incluindo outra camada de itens de dados ou elementos de grade específicos, como texto, imagens ou controles de edição. Se o elemento de item de dados tiver uma função de objeto específica, o elemento deve ser exposto como um tipo de controle específico; por exemplo, um tipo de controle ListItem para um item de dados selecionável na grade.
Propriedades de automação da interface do usuário necessárias
A tabela a seguir lista as propriedades cujo valor ou definição é especialmente relevante para controles de item de dados. Para obter mais informações sobre as propriedades de automação da interface do usuário, consulte Propriedades de automação da interface do usuário para clientes.
| Propriedade | Valor | Observações |
|---|---|---|
| AutomationIdProperty | Ver notas. | O valor dessa propriedade precisa ser exclusivo em todos os controles em um aplicativo. |
| BoundingRectangleProperty | Ver notas. | O retângulo mais externo que contém todo o controle. |
| ClickablePointProperty | Ver notas. | Suportado se houver um retângulo delimitador. Se nem todos os pontos dentro do retângulo delimitador forem clicáveis e você executar testes de acerto especializados, substitua e forneça um ponto clicável. |
| ControlTypeProperty | DataItem | Esse valor é o mesmo para todas as estruturas de interface do usuário. |
| IsContentElementProperty | Verdade | O controle de item de dados deve ser sempre conteúdo. |
| IsControlElementProperty | Verdade | O controle de item de dados deve ser sempre um controle. |
| IsKeyboardFocusableProperty | Ver notas. | Se o controle pode receber foco do teclado, ele deve suportar essa propriedade. |
| ItemStatusProperty | Ver notas. | Se o controlador contiver um estado que está a ser atualizado dinamicamente, esta propriedade deve ser implementada para que a tecnologia de apoio possa receber atualizações quando o estado do elemento mudar. |
| ItemTypeProperty | Ver notas. | Este é o valor da cadeia de caracteres que transmite ao usuário final o objeto subjacente que o item representa. Exemplos são "Media File" ou "Contact". |
| LabeledByProperty | Null |
Os controles de item de dados não têm um rótulo de texto estático. |
| LocalizedControlTypeProperty | "item de dados" | Cadeia de caracteres localizada correspondente ao tipo de controle DataItem. |
| NameProperty | Ver notas. | O controle de item de dados sempre contém um elemento de texto primário que se relaciona com o que o usuário associaria como o identificador mais semântico para o item. |
Padrões de controle de automação da interface do usuário necessários
A tabela a seguir lista os padrões de controle de automação da interface do usuário da Microsoft necessários para serem suportados por todos os controles de item de dados. Para obter mais informações sobre padrões de controle, consulte Visão geral de padrões de controle de automação da interface do usuário.
| Padrão de controle | Apoio | Observações |
|---|---|---|
| IExpandCollapseProvider | Depende | Se o item de dados puder ser expandido ou recolhido para mostrar e ocultar informações, o padrão Expandir Recolher deverá ser suportado. |
| IGridItemProvider | Depende | Os itens de dados darão suporte ao padrão de Item de Grade quando uma coleção de itens de dados estiver disponível dentro de um contêiner que possa ser navegado espacialmente de item para item. |
| IScrollItemProvider | Depende | Todos os itens de dados suportam a capacidade de serem percorridos até ficarem visíveis com o padrão de Rolagem de Itens quando o seu contêiner de dados tem mais itens do que cabem na tela. |
| ISelectionItemProvider | Sim | Todos os itens de dados devem suportar o padrão Item de Seleção para indicar quando o item é selecionado. |
| ITableItemProvider | Depende | Se o item de dados estiver contido em um tipo de controle Data Grid, ele suportará esse padrão. |
| IToggleProvider | Depende | Se o item de dados contiver um estado que pode ser percorrido. |
| IValueProvider | Depende | Se o texto principal do item de dados for editável, o padrão Valor deverá ser suportado. |
Trabalhando com itens de dados em listas grandes
Listas grandes geralmente são dados virtualizados dentro de estruturas de interface do usuário para ajudar no desempenho. Devido a isso, um cliente de automação da interface do usuário não pode usar o recurso de consulta de automação da interface do usuário para raspar o conteúdo da árvore completa da mesma maneira que pode em outros contêineres de itens. Um cliente deve rolar o item para a exibição (ou expandir o controle para mostrar todas as opções valiosas) antes de acessar o conjunto completo de informações do item de dados.
Ao chamar SetFocus no elemento de Automação da Interface do Usuário para o item de dados, o caso do Microsoft Windows Explorer retornará com êxito e fará com que o foco seja definido para o 'Editar' na subárvore do item de dados.
Eventos de automação da interface do usuário necessários
A tabela a seguir lista os eventos de Automação da Interface do Usuário necessários para serem suportados por todos os controles de item de dados. Para obter mais informações sobre eventos, consulte Visão geral eventos de automação da interface do usuário.
| Evento de automação da interface do usuário | Apoio | Observações |
|---|---|---|
| AutomationFocusChangedEvent | Obrigatório | Nenhum |
| BoundingRectangleProperty evento de alteração de propriedade. | Obrigatório | Nenhum |
| IsEnabledProperty evento de alteração de propriedade. | Obrigatório | Nenhum |
| IsOffscreenProperty evento de alteração de propriedade. | Obrigatório | Nenhum |
| NameProperty evento de alteração de propriedade. | Obrigatório | Nenhum |
| StructureChangedEvent | Obrigatório | Nenhum |
| InvokedEvent | Depende | Nenhum |
| ExpandCollapseStateProperty evento de alteração de propriedade. | Depende | Nenhum |
| ElementAddedToSelectionEvent | Obrigatório | Nenhum |
| ElementRemovedFromSelectionEvent | Obrigatório | Nenhum |
| ElementSelectedEvent | Obrigatório | Nenhum |
| ToggleStateProperty evento de alteração de propriedade. | Depende | Nenhum |
| ValueProperty evento de alteração de propriedade. | Depende | Nenhum |
Exemplo de tipo de controle DataItem
A imagem a seguir ilustra um tipo de controle DataItem em um controle List View com suporte para informações avançadas para as colunas.
As Vistas de Controlo e de Conteúdo da árvore de Automação da Interface do Utilizador que pertencem ao controlo de itens de dados são mostradas abaixo. Os padrões de controle para cada elemento de automação são mostrados entre parênteses. O Grupo "Contoso" também faz parte da grelha do controlo de host da Grelha de Dados.
| Árvore de automação da interface do usuário - Visualização de controle | Árvore de automação da interface do usuário - Visualização de conteúdo |
|---|---|
| - Grupo "Contoso" (tabela, grelha) - DataItem "Contas a Receber.doc" (TableItem, GridItem, SelectionItem, Invoke) - Imagem "Contas a Receber.doc" - Editar "Nome" (TableItem, GridItem, Valor "Contas a Receber.doc") - Editar "Data de modificação" (TableItem, GridItem, Valor "25/08/2006 15:29") - Editar "Tamanho" (GridItem, TableItem, Valor "11.0 KB) - DataItem "Contas a Pagar.doc" (TableItem, GridItem, SelectionItem, Invoke) - ... |
- Grupo "Contoso" (tabela, grelha) - DataItem "Contas a Receber.doc" (TableItem, GridItem, SelectionItem, Invoke) - Imagem "Contas a Receber.doc" - Editar "Nome" (TableItem, GridItem, Valor "Contas a Receber.doc") - Editar "Data de modificação" (TableItem, GridItem, Valor "25/08/2006 15:29") - Editar "Tamanho" (GridItem, TableItem, Valor "11.0 KB) - DataItem "Contas a Pagar.doc" (TableItem, GridItem, SelectionItem, Invoke) - … |
Se uma grade representa uma lista de itens selecionáveis, os elementos correspondentes da interface do usuário podem ser expostos com o tipo de controle ListItem em vez do tipo de controle DataItem. No exemplo anterior, os elementos DataItem ("Accounts Receivable.doc" e "Accounts Payable.doc") no Grupo ("Contoso") podem ser melhorados apresentando-os como tipos de controlo ListItem, pois já suportam o padrão de controlo SelectionItem.
Ver também
- DataItem
- Visão geral dos tipos de controle de Automação de UI
- Visão geral da automação da interface do usuário