Compartilhar via


Visão geral dos padrões de controle de automação da interface do usuário

Observação

Esta documentação destina-se a desenvolvedores do .NET Framework que desejam usar as classes de Automação de Interface do Usuário gerenciadas definidas no namespace System.Windows.Automation. Para obter as informações mais recentes sobre Automação de Interface do Usuário, consulte API de Automação do Windows: Automação de Interface do Usuário.

Essa visão geral apresenta os padrões de controle da Automação da Interface do Usuário da Microsoft. Os padrões de controle fornecem uma maneira de categorizar e expor a funcionalidade de um controle independentemente do tipo de controle ou da aparência do controle.

A Automação de Interface do Usuário usa padrões de controle para representar comportamentos de controle comuns. Por exemplo, você usa o padrão de controle Invoke para controles que podem ser invocados (como botões) e o padrão de controle Scroll para controles que têm barras de rolagem (como caixas de listagem, exibições de lista ou caixas de combinação). Como cada padrão de controle representa uma funcionalidade separada, eles podem ser combinados para descrever o conjunto completo de funcionalidades com suporte de um controle específico.

Observação

Os controles agregados, criados com controles filho que fornecem a interface do usuário (interface do usuário) para a funcionalidade exposta pelo pai, devem implementar todos os padrões de controle normalmente associados a cada controle filho. Por sua vez, esses mesmos padrões de controle não são necessários para serem implementados pelos controles filho.

Componentes de padrão de controle Automação da Interface do Usuário

Os padrões de controle dão suporte aos métodos, propriedades, eventos e relações necessários para definir uma parte discreta da funcionalidade disponível em um controle.

  • A relação entre um elemento de Automação da Interface do Usuário e seus pais, filhos e irmãos descreve a estrutura do elemento dentro da árvore de Automação da Interface do Usuário.

  • Os métodos permitem que os clientes de Automação da Interface do Usuário manipulem o controle.

  • As propriedades e os eventos fornecem informações sobre a funcionalidade do padrão de controle, bem como informações sobre o estado do controle.

Os padrões de controle estão relacionados à interface do usuário como interfaces relacionadas a objetos COM (Component Object Model). No COM, você pode consultar um objeto para perguntar quais interfaces ele dá suporte e, em seguida, usar essas interfaces para acessar a funcionalidade. Na Automação da Interface do Usuário, os clientes de Automação da Interface do Usuário podem perguntar a um controle quais padrões de controle ele dá suporte e, em seguida, interagir com o controle por meio das propriedades, métodos, eventos e estruturas expostas pelos padrões de controle com suporte. Por exemplo, para uma caixa de edição de várias linhas, Automação da Interface do Usuário provedores implementam IScrollProvider. Quando um cliente sabe que um AutomationElement é compatível com o padrão de controle ScrollPattern, ele pode usar as propriedades, métodos e eventos expostos por esse padrão de controle para manipular o controle ou acessar informações sobre o controle.

Provedores e clientes de automação da interface do usuário

Os provedores de Automação da Interface do Usuário implementam padrões de controle para expor o comportamento apropriado para uma parte específica da funcionalidade compatível com o controle.

Os clientes de Automação da Interface do Usuário acessam métodos e propriedades de classes de padrão de controle da Automação da Interface do Usuário e as usam para obter informações sobre a interface do usuário ou manipular a interface do usuário. Essas classes de padrão de controle são encontradas no System.Windows.Automation namespace (por exemplo, InvokePattern e SelectionPattern).

Os clientes usam AutomationElement métodos (como AutomationElement.GetCurrentPropertyValue ou AutomationElement.GetCachedPropertyValue) ou os acessadores clr (common language runtime) para acessar as propriedades Automação da Interface do Usuário em um padrão. Cada classe de padrão de controle tem um membro de campo (por exemplo, InvokePattern.Pattern ou SelectionPattern.Pattern) que identifica esse padrão de controle e pode ser passado como um parâmetro para GetCachedPattern ou GetCurrentPattern para recuperar esse padrão para um AutomationElement.

Padrões de controle dinâmico

Alguns controles nem sempre dão suporte ao mesmo conjunto de padrões de controle. Os padrões de controle são considerados compatíveis quando estão disponíveis para um cliente de Automação da Interface do Usuário. Por exemplo, uma caixa de edição de várias linhas habilita a rolagem vertical somente quando contém mais linhas de texto do que pode ser exibida em sua área visível. A rolagem é desabilitada quando o texto suficiente é removido para que a rolagem não seja mais necessária. Para este exemplo, o padrão de controle ScrollPattern é suportado dinamicamente dependendo do estado atual do controle (a quantidade de texto presente na caixa de edição).

Controlar padrões de classes e interfaces

A tabela a seguir descreve os padrões de controle da Automação de Interface do Usuário. A tabela também lista as classes usadas pelos clientes de Automação da Interface do Usuário para acessar os padrões de controle, bem como as interfaces usadas pelos provedores de Automação da Interface do Usuário para implementá-los.

Classe Control Pattern Interface do Provedor Descrição
DockPattern IDockProvider Usado para controles que podem ser encaixados em um contêiner de ancoragem. Por exemplo, barras de ferramentas ou paletas de ferramentas.
ExpandCollapsePattern IExpandCollapseProvider Usado para controles que podem ser expandidos ou recolhidos. Por exemplo, itens de menu em um aplicativo, como o menu Arquivo .
GridPattern IGridProvider Usado para controles que suportam funcionalidades de tabela, como o dimensionamento e a movimentação para uma célula especificada. Por exemplo, a exibição de ícone grande no Windows Explorer ou tabelas simples sem cabeçalhos no Microsoft Word.
GridItemPattern IGridItemProvider Usado em controles que possuem células dentro de grades. As células individuais devem dar suporte ao padrão GridItem. Por exemplo, cada célula no modo de exibição de detalhes do Microsoft Windows Explorer.
InvokePattern IInvokeProvider Usado para controles que podem ser invocados, como um botão.
MultipleViewPattern IMultipleViewProvider Usado para controles que podem alternar entre várias representações do mesmo conjunto de informações, dados ou filhos. Por exemplo, um controle de exibição de lista em que os dados estão disponíveis nas exibições em miniatura, bloco, ícone, lista ou detalhes.
RangeValuePattern IRangeValueProvider Usado para controles que têm um intervalo de valores que podem ser aplicados ao controle. Por exemplo, um controle spinner que contém anos pode ter um intervalo de 1900 a 2010, enquanto outro controle spinner que apresenta meses teria um intervalo de 1 a 12.
ScrollPattern IScrollProvider Usado para controles roláveis. Por exemplo, um controle que tem barras de rolagem que estão ativas quando há mais informações do que podem ser exibidas na área visível do controle.
ScrollItemPattern IScrollItemProvider Usado para controles que têm itens individuais em uma lista que rola. Por exemplo, um controle de lista que tem itens individuais na lista de rolagem, como um controle de caixa de combinação.
SelectionPattern ISelectionProvider Usado para controles de seleção de contêiner. Por exemplo, caixas de listagem e caixas de combinação.
SelectionItemPattern ISelectionItemProvider Usado para itens individuais em controles de contêiner de seleção, como caixas de lista e caixas de combinação.
TablePattern ITableProvider Usado para controles que têm uma grade, bem como informações de cabeçalho. Por exemplo, planilhas do Microsoft Excel.
TableItemPattern ITableItemProvider Usado para itens em uma tabela.
TextPattern ITextProvider Usado para editar controles e documentos que expõem informações textuais.
TogglePattern IToggleProvider Usado para controles em que o estado pode ser alternado. Por exemplo, caixas de seleção e itens de menu verificáveis.
TransformPattern ITransformProvider Usado para controles que podem ser redimensionados, movidos e girados. Os usos típicos para o padrão de controle Transform estão em ferramentas de design, formulários, editores gráficos e aplicativos de desenho.
ValuePattern IValueProvider Permite que os clientes obtenham ou definam um valor em controles que não dão suporte a um intervalo de valores. Por exemplo, um seletor de data e hora.
WindowPattern IWindowProvider Expõe informações específicas do Windows, um conceito fundamental para o sistema operacional Microsoft Windows. Exemplos de controles que são janelas incluem janelas de aplicativos de nível superior (Microsoft Word, Microsoft Windows Explorer, entre outros), janelas filhas da interface de múltiplos documentos (MDI) e caixas de diálogo.

Consulte também