Suporte de automação de interface do usuário para o tipo de controle List

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 fornece informações sobre suporte da Automação da Interface do Usuário para o tipo de controle de lista. Na Automação da Interface do Usuário, um tipo de controle é um conjunto de condições que um controle precisa atender para usar a propriedade ControlTypeProperty. As condições incluem as diretrizes específicas para estrutura de árvore, bem como para os valores de propriedade e os padrões de controle da Automação da Interface do Usuário.

O tipo de controle de lista é uma maneira de organizar um grupo simples ou grupos de itens e permite que um usuário selecione um ou mais desses itens. O tipo de controle de lista tem uma restrição flexível sobre os tipos de elementos filhos que ele pode conter. Isso permite que os provedores de Automação da Interface do Usuário ofereçam suporte a um elemento conhecido para contêineres de seleção.

Os requisitos de Automação da Interface do Usuário nas seções a seguir se aplicam a todos os controles que implementam o tipo de controle de lista, seja do WPF (Windows Presentation Foundation), do Win32 ou do Windows Forms. Os controles de contêiner de lista são um exemplo de controles que implementam o tipo de controle Lista.

Estrutura de árvore obrigatória da Automação da Interface do Usuário

A tabela a seguir ilustra as duas exibições da árvore da Automação da Interface do Usuário que pertencem aos controles de lista e descreve o que pode ser contido em cada exibição. A exibição de controle contém apenas elementos que são controles e a exibição de conteúdo remove informações redundantes da árvore. Por exemplo, um controle de texto usado para rotular uma caixa de combinação será exposto como ComboBox NameProperty. Como o controle de texto já está exposto dessa maneira por meio da exibição de controle, é desnecessário expô-lo duas vezes. Portanto, ele é removido da exibição de conteúdo. Para obter mais informações sobre a árvore da Automação da Interface do Usuário, confira Visão geral da árvore da Automação da Interface do Usuário.

Exibição de controle Exibição de conteúdo
Contém os elementos que correspondem aos controles. Remove informações redundantes da árvore para que as tecnologias adaptativas funcionem com o menor conjunto de informações significativas para o usuário final.
Lista

– DataItem (0 ou mais)
– ListItem (0 ou mais)
– Group (0 ou mais)
– ScrollBar (0, 1 ou 2)
Lista

– DataItem (0 ou mais)
– ListItem (0 ou mais)
– Group (0 ou mais)

A exibição de um controle que implementa o tipo de controle de lista (como um controle de lista) consiste em:

  • Zero ou mais itens no controle de lista (os itens podem ser baseados nos tipos de controle de item de lista ou item de dados).

  • Zero ou mais controles de grupo em um controle de lista.

  • Zero, um ou dois controles de barra de rolagem.

A exibição de conteúdo de um controle que implementa o tipo de controle de lista (como um controle de lista) consiste em:

  • Zero ou mais itens no controle de lista (os itens podem ser baseados nos tipos de controle de item de lista ou item de dados).

  • Zero ou mais grupos no controle de lista.

Um controle de lista não deve ter itens que tenham uma relação hierárquica que não seja o agrupamento. Se os itens tiverem filhos na árvore da Automação da Interface do Usuário, o contêiner de lista deverá ser baseado no tipo de controle de árvore.

Os itens selecionáveis no controle de lista estarão disponíveis desde os descendentes na árvore da Automação da Interface do Usuário do controle de lista. Todos os itens no controle de lista devem pertencer ao mesmo grupo de seleção. Os itens selecionáveis na lista devem ser expostos como tipos de controle ListItem (em vez de DataItem).

Propriedades obrigatórias da Automação da Interface do Usuário

A tabela a seguir lista as propriedades da Automação da Interface do Usuário cujo valor ou definição é especialmente relevante para controles de lista. Para obter mais informações sobre as propriedades da Automação da Interface do Usuário, confira Propriedades da Automação da Interface do Usuário para clientes.

Propriedade de Automação da Interface do Usuário Valor Observações
AutomationIdProperty Veja as observações. O valor dessa propriedade precisa ser exclusivo em todos os controles de um aplicativo.
BoundingRectangleProperty Veja as observações. O retângulo mais externo que contém todo o controle.
ClickablePointProperty Veja as observações. Se o controle de lista tiver um ponto clicável (um ponto que possa ser clicado para fazer com que a lista receba o foco), esse ponto deverá ser exposto por meio dessa propriedade.

Se o valor da propriedade IsOffScreen for True, NoClickablePointException será gerado.
IsKeyboardFocusableProperty Veja as observações. Se o controle puder receber o foco do teclado, ele deverá dar suporte a essa propriedade.
NameProperty Veja as observações. O valor da propriedade Name de um controle de lista deve transmitir a categoria de opções que o usuário está sendo solicitado a selecionar. Normalmente, essa propriedade extrai o nome de um rótulo de texto estático. Se não houver um rótulo de texto estático, o desenvolvedor do aplicativo deverá expor um valor para a propriedade Name.

Essa propriedade só não é obrigatória nos controles de lista quando o controle é usado na subárvore de outro controle.
LabeledByProperty Veja as observações. Se houver um rótulo de texto estático, essa propriedade precisará expor uma referência a esse controle.
ControlTypeProperty Lista Esse valor é o mesmo para todas as estruturas da IU.
LocalizedControlTypeProperty "lista" Cadeia de caracteres localizada correspondente ao tipo de controle de lista.
IsContentElementProperty True O controle de lista sempre está incluído na exibição de conteúdo da árvore da Automação da Interface do Usuário.
IsControlElementProperty True O controle de lista sempre está incluído na exibição de controle da árvore da Automação da Interface do Usuário.
IsKeyboardFocusableProperty True Se o contêiner puder aceitar entrada do teclado, o valor da propriedade deverá ser True.
HelpTextProperty Veja as observações. O texto da Ajuda dos controles de lista deve explicar por que o usuário deve escolher uma das opções da lista. Por exemplo: "A seleção de um item dessa lista definirá a resolução de tela do monitor".

Padrões de controle e propriedades obrigatórios da Automação da Interface do Usuário

A tabela a seguir lista os padrões de controle da Automação da Interface do Usuário obrigatórios para ter suporte dos controles de lista. Para obter mais informações sobre padrões de controle, confira Visão geral dos padrões de controle da Automação da Interface do Usuário.

Padrão de Controle/Propriedade do Padrão Suporte/Valor Observações
ISelectionProvider Obrigatório Todos os controles que dão suporte ao tipo de controle de lista devem implementar ISelectionProvider quando um estado de seleção é mantido entre os itens contidos no controle. Se os itens do contêiner não forem selecionáveis, o tipo de controle de grupo deverá ser usado.
IsSelectionRequired Depende Nem sempre os controles de lista exigem que um item seja selecionado.
CanSelectMultiple Depende Os controles de lista podem ser contêineres de seleção única ou múltipla.
IScrollProvider Depende Implemente esse padrão de controle se os itens no contêiner forem roláveis.
IGridProvider Depende Implemente esse padrão quando a navegação de grade precisar estar disponível item por item.
IMultipleViewProvider Depende Implemente esse padrão de controle se o controle puder dar suporte a várias exibições dos itens no contêiner.
ITableProvider Nunca O tipo de controle de lista não oferece suporte a ITableProvider. Para dar suporte a esse padrão de controle, o controle deverá ser baseado no tipo de controle da Grade de Dados.

Eventos obrigatórios da Automação da Interface do Usuário

A tabela a seguir lista os eventos da Automação da Interface do Usuário obrigatórios para ter suporte de todos os controles de lista. Para obter mais informações sobre eventos, confira Visão geral de eventos da Automação da Interface do Usuário.

Evento de Automação da Interface do Usuário Suporte/Valor Observações
InvalidatedEvent Depende Nenhum
LayoutInvalidatedEvent Depende Nenhum
Evento de alteração da propriedade BoundingRectangleProperty. Obrigatório Nenhum
Evento de alteração da propriedade IsOffscreenProperty. Obrigatório Nenhum
Evento de alteração da propriedade IsEnabledProperty. Obrigatório Nenhum
Evento de alteração da propriedade CurrentViewProperty. Depende Nenhum
Evento de alteração da propriedade HorizontallyScrollableProperty. Depende Nenhum
Evento de alteração da propriedade HorizontalScrollPercentProperty. Depende Nenhum
Evento de alteração da propriedade HorizontalViewSizeProperty. Depende Nenhum
Evento de alteração da propriedade VerticalScrollPercentProperty. Depende Nenhum
Evento de alteração da propriedade VerticallyScrollableProperty. Depende Nenhum
Evento de alteração da propriedade VerticalViewSizeProperty. Depende Nenhum
AutomationFocusChangedEvent Obrigatório Nenhum
StructureChangedEvent Obrigatório Nenhum

Confira também