Visão Geral de Padrões de Controle de Automação de Interface de Usuário

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.

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

Automação da Interface do Usuário usa padrões de controle para representar comportamentos de controle comuns. Por exemplos, 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, modos de exibição em lista ou caixas de combinação). Cada padrão de controle representa uma tipo de funcionalidade separado, e os padrões de controle podem ser combinados para descrever todo o conjunto de funcionalidades com suporte por 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 funcionalidade discreta disponível em um controle.

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

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

  • As propriedades e 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 se relacionam à interface do usuário da mesma maneira que as interfaces se relacionam com objetos COM. No COM, você pode consultar um objeto para saber a quais interfaces ele dá suporte e 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 elemento de Automação da IU os padrões de controle aos quais ele dá suporte e então interagir com o elemento e seu controle par por meio das propriedades, métodos, eventos e estruturas expostos 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 padrão AutomationElement de controle é compatível 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.

Automação da Interface do Usuário provedores e clientes

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

Automação da Interface do Usuário clientes acessam métodos e propriedades de classes de padrão de controle 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 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 tem suporte dinâmico, dependendo do estado atual do controle (quanto texto está na caixa de edição).

Controlar classes e interfaces de padrão

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

Classe Control Pattern Interface do Provedor Descrição
DockPattern IDockProvider Usado para controles que podem ser encaixados em um contêiner. 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 dão suporte à funcionalidade de grade, como dimensionamento e transferência 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 para controles que possuem células nas 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 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, peça, ícone, lista ou detalhes.
RangeValuePattern IRangeValueProvider Usado para controles que possuem um intervalo de valores que podem ser aplicados ao controle. Por exemplo, um controle giratório contendo anos poderia ter o intervalo de 1900 até2010, já outro contendo meses poderia ter o intervalo de 1 a 12.
ScrollPattern IScrollProvider Usado para controles que podem ser rolados. Por exemplo, um controle que tenha barras de rolagem que ficam ativas quando há mais informações que podem ser exibidas na área de visualização do controle.
ScrollItemPattern IScrollItemProvider Usado para controles que possuem itens individuais em uma lista de rolagem. Por exemplo, um controle de lista que possua itens individuais na lista de rolagem, como um controle de caixa de combinação.
SelectionPattern ISelectionProvider Usado para controles de contêiner de seleção. Por exemplo, caixas de listagem e caixas de combinação.
SelectionItemPattern ISelectionItemProvider Usado para itens individuais nos controles do contêiner de seleção, como caixas de listagem e caixas de combinação.
TablePattern ITableProvider Usado para controles que possuem uma grade e 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 exponham informações textuais.
TogglePattern IToggleProvider Usado para controles onde é possível alternar o estado. Por exemplo, caixas de seleção e itens de menu verificáveis.
TransformPattern ITransformProvider Usado para controles que podem ser redimensionados, transferidos e girados. O padrão de controle de transformação costuma ser usado em aplicativos de desenho, design, formulários e editores gráficos.
ValuePattern IValueProvider Possibilita que os clientes obtenham ou definam um valor nos 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 de janelas, um conceito fundamental para o sistema operacional Microsoft Windows. Exemplos de controles que são windows são janelas de aplicativo de nível superior (Microsoft Word, Microsoft Windows Explorer e assim por diante), janelas filho MDI (interface de vários documentos) e caixas de diálogo.

Confira também