Padrões de Controle para Clientes de Automação de IU

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.

Esta visão geral apresenta os padrões de controle para clientes da Automação da Interface do Usuário. Ela inclui informações sobre como um cliente da Automação da Interface do Usuário pode usar padrões de controle para acessar informações sobre a 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. Os clientes da Automação da Interface do Usuário podem examinar um AutomationElement para determinar para quais padrões de controle há suporte e ter certeza do comportamento do controle.

Para ver a lista completa de padrões de controle, confira Visão geral dos padrões de controle da Automação da Interface do Usuário.

Como obter padrões de controle

Os clientes recuperam um padrão de controle de um AutomationElement chamando AutomationElement.GetCachedPattern ou AutomationElement.GetCurrentPattern.

Os clientes podem usar o método GetSupportedPatterns ou uma propriedade IsPatternAvailable individual (por exemplo, IsTextPatternAvailableProperty) para determinar se há suporte para um padrão ou um grupo de padrões no AutomationElement. No entanto, é mais eficiente tentar obter o padrão de controle e testar uma referência null do que verificar as propriedades com suporte e recuperar o padrão de controle, pois resulta em menos chamadas entre processos.

O exemplo a seguir demonstra como obter um padrão de controle TextPattern de um AutomationElement.

// Specify the control type we're looking for, in this case 'Document'
PropertyCondition cond = new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Document);

// target --> The root AutomationElement.
AutomationElement textProvider = target.FindFirst(TreeScope.Descendants, cond);

targetTextPattern = textProvider.GetCurrentPattern(TextPattern.Pattern) as TextPattern;

if (targetTextPattern == null)
{
    Console.WriteLine("Root element does not contain a descendant that supports TextPattern.");
    return;
}

Como recuperar propriedades em padrões de controle

Os clientes podem recuperar os valores de propriedade em padrões de controle chamando AutomationElement.GetCachedPropertyValue ou AutomationElement.GetCurrentPropertyValue convertendo o objeto retornado para um tipo apropriado. 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.

Além dos métodos GetPropertyValue, os valores de propriedade podem ser recuperados por meio dos acessadores do CLR (Common Language Runtime) para acessar as propriedades da Automação da Interface do Usuário em um padrão.

Controles com padrões variáveis

Alguns tipos de controle dão suporte a padrões diferentes, dependendo do estado ou da maneira como o controle está sendo usado. Entre os exemplos de controles que podem ter padrões variáveis estão exibições de lista (miniaturas, blocos, ícones, lista, detalhes), gráficos do Microsoft Excel (pizza, linha, barra, valor da célula com uma fórmula), área de documento do Microsoft Word (normal, layout da Web, estrutura de tópicos, layout de impressão, visualização de impressão) e capas do Microsoft Windows Media Player.

Os controles que implementam tipos de controle personalizados podem ter qualquer conjunto de padrões de controle necessários para representar a funcionalidade deles.

Confira também