Compartilhar via


Visão geral das propriedades de automação da interface do 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.

A Automação da Interface do Usuário expõe propriedades nos elementos da Automação da Interface do Usuário da Microsoft. Essas propriedades permitem que aplicativos cliente da Automação da Interface do Usuário descubram informações sobre partes da interface do usuário, especialmente controles, incluindo dados estáticos e dinâmicos.

Esta seção fornece uma ampla visão geral das propriedades da Automação de Interface do Usuário Microsoft. Informações mais específicas são fornecidas nos seguintes tópicos:

Identificadores de propriedade

Cada propriedade é identificada por um número e um nome. Os nomes das propriedades são usados apenas para depuração e diagnóstico. Os provedores usam as IDs numéricas para identificar solicitações de propriedade de entrada. No entanto, os aplicativos cliente usam apenas AutomationProperty, que encapsula o número e o nome, para identificar as propriedades que desejam recuperar.

Objetos AutomationProperty que representam propriedades específicas estão disponíveis como campos em várias classes. Por motivos de segurança, os provedores da Automação da Interface do Usuário obtêm esses objetos de um conjunto separado de classes contidas em Uiautomationtypes.dll.

A tabela a seguir categoriza as propriedades pelas classes que contêm as IDs AutomationProperty.

Tipos de propriedades Os clientes obtêm IDs de Os provedores obtêm IDs de
Propriedades comuns a todos os elementos (consulte as tabelas a seguir) AutomationElement AutomationElementIdentifiers
Posição de uma janela de encaixe DockPattern DockPatternIdentifiers
Estado de um elemento que pode expandir e recolher ExpandCollapsePattern ExpandCollapsePatternIdentifiers
Propriedades de um item em uma grade GridItemPattern GridItemPatternIdentifiers
Propriedades de uma grade GridPattern GridPatternIdentifiers
Exibição atual e com suporte de um elemento que tem várias exibições MultipleViewPattern MultipleViewPatternIdentifiers
Propriedades de um elemento que se move sobre um intervalo de valores, como um controle deslizante RangeValuePattern RangeValuePatternIdentifiers
Propriedades de uma janela de rolagem ScrollPattern ScrollPatternIdentifiers
Status e contêiner de um item que pode ser selecionado, como em uma lista SelectionItemPattern SelectionItemPatternIdentifiers
Propriedades de um controle que contém itens de seleção SelectionPattern SelectionPatternIdentifiers
Cabeçalhos de coluna e linha de um item em uma tabela TableItemPattern TableItemPatternIdentifiers
Cabeçalhos de coluna e linha e orientação de uma tabela TablePattern TablePatternIdentifiers
Estado de um controle de alternância TogglePattern TogglePatternIdentifiers
Funcionalidades de um elemento que pode ser movido, girado ou redimensionado TransformPattern TransformPatternIdentifiers
Funcionalidades de valor e leitura/gravação de um elemento que tem um valor ValuePattern ValuePatternIdentifiers
Funcionalidades e estado de uma janela WindowPattern WindowPatternIdentifiers

Propriedades por Categoria

As tabelas a seguir categorizam as propriedades cujas IDs são encontradas em AutomationElement e AutomationElementIdentifiers. Estas propriedades são comuns a todos os controles. Todos, exceto alguns deles, provavelmente serão estáticos ao longo do tempo de vida do aplicativo provedor; a maioria das propriedades dinâmicas estão associadas a padrões de controle.

A coluna Acesso à Propriedade lista qualquer outro acessador para cada propriedade, além de GetCurrentPropertyValue e GetCachedPropertyValue. Para mais informações sobre como obter propriedades em um aplicativo cliente, consulte Propriedades para Clientes da Automação da Interface do Usuário.

Observação

Para obter informações específicas de cada propriedade, siga o link na coluna Acesso à Propriedade.

Exibir Características

Identificador de propriedade Acesso à propriedade
BoundingRectangleProperty BoundingRectangle
CultureProperty n/d
HelpTextProperty HelpText
IsOffscreenProperty IsOffscreen
OrientationProperty Orientation

Tipo de elemento

Identificador de propriedade Acesso à propriedade
ControlTypeProperty ControlType
IsContentElementProperty IsContentElement
IsControlElementProperty IsControlElement
ItemTypeProperty ItemType
LocalizedControlTypeProperty LocalizedControlType

Identificação

Identificador de propriedade Acesso à propriedade
AutomationIdProperty AutomationId
ClassNameProperty ClassName
FrameworkIdProperty FrameworkId
LabeledByProperty LabeledBy
NameProperty Name
ProcessIdProperty ProcessId
RuntimeIdProperty GetRuntimeId
NativeWindowHandleProperty NativeWindowHandle

Interação

Identificador de propriedade Acesso à propriedade
AcceleratorKeyProperty AcceleratorKey
AccessKeyProperty AccessKey
ClickablePointProperty GetClickablePoint
HasKeyboardFocusProperty HasKeyboardFocus
IsEnabledProperty IsEnabled
IsKeyboardFocusableProperty IsKeyboardFocusable

Suporte para padrões

Identificador de propriedade Acesso à propriedade
IsDockPatternAvailableProperty GetSupportedPatterns
IsExpandCollapsePatternAvailableProperty GetSupportedPatterns
IsGridItemPatternAvailableProperty GetSupportedPatterns
IsGridPatternAvailableProperty GetSupportedPatterns
IsInvokePatternAvailableProperty GetSupportedPatterns
IsMultipleViewPatternAvailableProperty GetSupportedPatterns
IsRangeValuePatternAvailableProperty GetSupportedPatterns
IsScrollItemPatternAvailableProperty GetSupportedPatterns
IsScrollPatternAvailableProperty GetSupportedPatterns
IsSelectionItemPatternAvailableProperty GetSupportedPatterns
IsSelectionPatternAvailableProperty GetSupportedPatterns
IsTableItemPatternAvailableProperty GetSupportedPatterns
IsTablePatternAvailableProperty GetSupportedPatterns
IsTextPatternAvailableProperty GetSupportedPatterns
IsTogglePatternAvailableProperty GetSupportedPatterns
IsTransformPatternAvailableProperty GetSupportedPatterns
IsValuePatternAvailableProperty GetSupportedPatterns
IsWindowPatternAvailableProperty GetSupportedPatterns

Diversos

Identificador de propriedade Acesso à propriedade
IsRequiredForFormProperty IsRequiredForForm
IsPasswordProperty IsPassword
ItemStatusProperty ItemStatus

Localização

Os provedores da Automação da Interface do Usuário devem apresentar as seguintes propriedades no idioma do sistema operacional:

Propriedades e eventos

Intimamente vinculado com as propriedades na Automação da Interface do Usuário é o conceito de eventos alterados pela propriedade. Para propriedades dinâmicas, o aplicativo cliente precisa de uma maneira de saber se um valor de propriedade foi alterado para que ele possa atualizar seu cache de informações ou reagir às novas informações de alguma outra forma.

Os provedores geram eventos quando algo na interface do usuário é alterado. Por exemplo, se uma caixa de seleção for selecionada ou desmarcada, um evento alterado pela propriedade será gerado pela implementação do padrão de alternância pelo provedor. Os provedores podem gerar eventos seletivamente, dependendo se algum cliente está escutando eventos ou escutando eventos específicos.

Nem todas as alterações de propriedade geram eventos; isso depende inteiramente da implementação do provedor de Automação da Interface do Usuário para o elemento. Por exemplo, os provedores de proxy padrão para caixas de listagem não geram um evento quando SelectionProperty se altera. Nesse caso, em vez disso, o aplicativo deve escutar um ElementSelectedEvent.

Os clientes escutam eventos assinando-os. Assinar eventos significa criar métodos delegados que podem lidar com os eventos e, em seguida, passar os métodos para a Automação da Interface do Usuário junto com os eventos específicos que serão tratados nesses métodos. Para eventos alterados por propriedade em particular, os clientes devem implementar AutomationPropertyChangedEventHandler.

Confira também