Partilhar via


Visão geral dos padrões de controle 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.

Esta visão geral apresenta os padrões de controle de 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 da 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, modos de exibição 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 suportadas por um controle específico.

Nota

Os controles agregados — criados com controles filho que fornecem a interface do usuário (UI) 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 precisam ser implementados pelos controles filho.

Componentes do padrão de controle de automação da interface do usuário

Os padrões de controle suportam os métodos, propriedades, eventos e relacionamentos 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 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 à medida que as interfaces se relacionam com objetos COM (Component Object Model). Em COM, você pode consultar um objeto para perguntar quais interfaces ele suporta e, em seguida, usar essas interfaces para acessar a funcionalidade. Na Automação da Interface do Usuário, os clientes da Automação da Interface do Usuário podem perguntar a um controle quais padrões de controle ele suporta e, em seguida, interagir com o controle por meio das propriedades, métodos, eventos e estruturas expostos pelos padrões de controle suportados. Por exemplo, para uma caixa de edição de várias linhas, os provedores de automação da interface do usuário implementam IScrollProvidero . Quando um cliente sabe que um AutomationElement suporta o ScrollPattern padrão de controle, 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 de 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 suportada pelo controle.

Os clientes da Automação da Interface do Usuário acessam métodos e propriedades das classes de padrão de controle da Automação da Interface do Usuário e os usam para obter informações sobre a interface do usuário ou para 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 de 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 suportam o mesmo conjunto de padrões de controle. Os padrões de controle são considerados suportados 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 permite a rolagem vertical somente quando contém mais linhas de texto do que pode ser exibido em sua área visível. A rolagem é desativada quando texto suficiente é removido para que a rolagem não seja mais necessária. Neste exemplo, o padrão de controle ScrollPattern é suportado dinamicamente dependendo do estado atual do controle (quanto texto está na caixa de edição).

Classes de padrão de controle e interfaces

A tabela a seguir descreve os padrões de controle de automação da 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 de padrão de controle Interface do provedor Description
DockPattern IDockProvider Usado para controles que podem ser encaixados em um contêiner de encaixe. 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 a funcionalidade de grade, como dimensionamento e 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 para controles que têm células dentro de grades. As células individuais devem suportar o 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 onde os dados estão disponíveis em miniatura, bloco, ícone, lista ou modos de exibição de detalhes.
RangeValuePattern IRangeValueProvider Usado para controles que têm um intervalo de valores que podem ser aplicados ao controle. Por exemplo, um controle de rotador contendo anos pode ter um intervalo de 1900 a 2010, enquanto outro controle de rotador que apresenta meses teria um intervalo de 1 a 12.
ScrollPattern IScrollProvider Usado para controles que podem rolar. Por exemplo, um controle que tem barras de rolagem que estão ativas quando há mais informações do que pode ser exibido 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 contêiner de seleção. 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 listagem 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 onde 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 são em designers, 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 oferecem 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 são janelas de aplicativos de nível superior (Microsoft Word, Microsoft Windows Explorer e assim por diante), janelas filhas de interface de vários documentos (MDI) e caixas de diálogo.

Consulte também