Visão Geral de Padrões de Controle de Automação de Interface de UsuárioUI Automation Control Patterns Overview

Observação

Esta documentação destina-se a desenvolvedores do .NET Framework que querem usar as classes da Automação da interface do usuárioUI Automation gerenciadas definidas no namespace System.Windows.Automation.This documentation is intended for .NET Framework developers who want to use the managed Automação da interface do usuárioUI Automation classes defined in the System.Windows.Automation namespace. Para obter as informações mais recentes sobre a Automação da interface do usuárioUI Automation, consulte Windows Automation API: UI Automation (API de Automação do Windows: Automação da Interface do Usuário).For the latest information about Automação da interface do usuárioUI Automation, see Windows Automation API: UI Automation.

Esta visão geral apresenta Automação de Interface do Usuário MicrosoftMicrosoft UI Automation padrões de controle.This overview introduces Automação de Interface do Usuário MicrosoftMicrosoft UI Automation control patterns. 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.Control patterns provide a way to categorize and expose a control's functionality independent of the control type or the appearance of the control.

Automação da interface do usuárioUI Automation usa padrões de controle para representar comportamentos comuns de controle.uses control patterns to represent common control behaviors. 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).For example, you use the Invoke control pattern for controls that can be invoked (such as buttons) and the Scroll control pattern for controls that have scroll bars (such as list boxes, list views, or combo boxes). 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.Because each control pattern represents a separate functionality, they can be combined to describe the full set of functionality supported by a particular control.

Observação

Controles de agregação — criados com controles filho que fornecem a UI (interface do usuário)user interface (UI) para a funcionalidade exposta pelo pai — devem implementar todos os padrões de controle normalmente associados a cada controle filho.Aggregate controls—built with child controls that provide the UI (interface do usuário)user interface (UI) for functionality exposed by the parent—should implement all control patterns normally associated with each child control. Por sua vez, os mesmos padrões de controle não precisam ser implementados pelos controles filho.In turn, those same control patterns are not required to be implemented by the child controls.

Componentes do padrão de controle de automação da interface do usuárioUI Automation Control Pattern Components

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.Control patterns support the methods, properties, events, and relationships needed to define a discrete piece of functionality available in a control.

  • A relação entre um elemento de automação de interface do usuário e seu pai, filhos e irmãos descreve a estrutura do elemento dentro da árvore de Automação da interface do usuárioUI Automation.The relationship between a UI Automation element and its parent, children and siblings describes the element's structure within the Automação da interface do usuárioUI Automation tree.

  • Os métodos permitem que os clientes de automação da interface do usuário manipulem o controle.The methods allow UI Automation clients to manipulate the control.

  • 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.The properties and events provide information about the control pattern's functionality as well as information about the state of the control.

Os padrões de controle estão relacionados a Interface de UsuárioUI como interfaces se relacionam com objetos Component Object Model (COM).Control patterns relate to Interface de UsuárioUI as interfaces relate to Component Object Model (COM) objects. Em COM, você pode consultar um objeto para perguntar a quais interfaces ele dá suporte e, em seguida, usar essas interfaces para acessar a funcionalidade.In COM, you can query an object to ask what interfaces it supports and then use those interfaces to access functionality. Em Automação da interface do usuárioUI Automation, os clientes de automação da interface do usuário podem pedir a um controle quais padrões de controle ele oferece suporte e interagir com o controle por meio de propriedades, métodos, eventos e estruturas expostas pelos padrões de controle com suporte.In Automação da interface do usuárioUI Automation, UI Automation clients can ask a control which control patterns it supports and then interact with the control through the properties, methods, events, and structures exposed by the supported control patterns. Por exemplo, para uma caixa de edição de várias linhas, os provedores de automação da interface do usuário implementam IScrollProvider.For example, for a multiline edit box, UI Automation providers implement IScrollProvider. Quando um cliente sabe que um AutomationElement dá suporte ao padrão de controle de ScrollPattern, ele pode usar as propriedades, os métodos e os eventos expostos por esse padrão de controle para manipular o controle ou acessar informações sobre o controle.When a client knows that an AutomationElement supports the ScrollPattern control pattern, it can use the properties, methods, and events exposed by that control pattern to manipulate the control, or access information about the control.

Provedores e clientes de automação da interface do usuárioUI Automation Providers and Clients

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 com suporte do controle.UI Automation providers implement control patterns to expose the appropriate behavior for a specific piece of functionality supported by the control.

Os clientes de automação da interface do usuário acessam métodos e propriedades de Automação da interface do usuárioUI Automation classes de padrão de controle e as usam para obter informações sobre o Interface de UsuárioUIou para manipular o Interface de UsuárioUI.UI Automation clients access methods and properties of Automação da interface do usuárioUI Automation control pattern classes and use them to get information about the Interface de UsuárioUI, or to manipulate the Interface de UsuárioUI. Essas classes de padrão de controle são encontradas no namespace System.Windows.Automation (por exemplo, InvokePattern e SelectionPattern).These control pattern classes are found in the System.Windows.Automation namespace (for example, InvokePattern and SelectionPattern).

Os clientes usam os métodos de AutomationElement (como AutomationElement.GetCurrentPropertyValue ou AutomationElement.GetCachedPropertyValue) ou os acessadores Common Language Runtime (CLR) para acessar as propriedades de Automação da interface do usuárioUI Automation em um padrão.Clients use AutomationElement methods (such as AutomationElement.GetCurrentPropertyValue or AutomationElement.GetCachedPropertyValue) or the common language runtime (CLR) accessors to access the Automação da interface do usuárioUI Automation properties on a pattern. Cada classe de padrão de controle tem um membro Field (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.Each control pattern class has a field member (for example, InvokePattern.Pattern or SelectionPattern.Pattern) that identifies that control pattern and can be passed as a parameter to GetCachedPattern or GetCurrentPattern to retrieve that pattern for an AutomationElement.

Padrões de controle dinâmicoDynamic Control Patterns

Alguns controles nem sempre dão suporte ao mesmo conjunto de padrões de controle.Some controls do not always support the same set of control patterns. Padrões de controle são considerados compatíveis quando estão disponíveis para um cliente de automação de interface do usuário.Control patterns are considered supported when they are available to a UI Automation client. Por exemplo, uma caixa de edição de várias linhas permite a rolagem vertical somente quando ela contém mais linhas de texto que podem ser exibidas em sua área visível.For example, a multiline edit box enables vertical scrolling only when it contains more lines of text than can be displayed in its viewable area. A rolagem é desabilitada quando texto suficiente é removido para que a rolagem não seja mais necessária.Scrolling is disabled when enough text is removed so that scrolling is no longer required. Para este exemplo, o padrão de controle ScrollPattern tem suporte dinâmico dependendo do estado atual do controle (a quantidade de texto na caixa de edição).For this example, the ScrollPattern control pattern is dynamically supported depending on the current state of the control (how much text is in the edit box).

Classes e interfaces de padrão de controleControl Pattern Classes and Interfaces

A tabela a seguir descreve os padrões de controle de Automação da interface do usuárioUI Automation.The following table describes the Automação da interface do usuárioUI Automation control patterns. 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.The table also lists the classes used by UI Automation clients to access the control patterns, as well as the interfaces used by UI Automation providers to implement them.

Classe de padrão de controleControl Pattern Class Interface do provedorProvider Interface DescriçãoDescription
DockPattern IDockProvider Usado para controles que podem ser encaixados em um contêiner de encaixe.Used for controls that can be docked in a docking container. Por exemplo, barras de ferramentas ou paletas de ferramentas.For example, toolbars or tool palettes.
ExpandCollapsePattern IExpandCollapseProvider Usado para controles que podem ser expandidos ou recolhidos.Used for controls that can be expanded or collapsed. Por exemplo, itens de menu em um aplicativo, como o menu arquivo .For example, menu items in an application such as the File menu.
GridPattern IGridProvider Usado para controles que dão suporte à funcionalidade de grade, como dimensionar e mover para uma célula especificada.Used for controls that support grid functionality such as sizing and moving to a specified cell. Por exemplo, o modo de exibição de ícones grandes no Windows Explorer ou tabelas simples sem cabeçalhos no Microsoft Word.For example, the large icon view in Windows Explorer or simple tables without headers in Microsoft Word.
GridItemPattern IGridItemProvider Usado para controles que têm células dentro de grades.Used for controls that have cells within grids. As células individuais devem dar suporte ao padrão GridItem.The individual cells should support the GridItem pattern. Por exemplo, cada célula no modo de exibição de detalhes do Microsoft Windows Explorer.For example, each cell in Microsoft Windows Explorer detail view.
InvokePattern IInvokeProvider Usado para controles que podem ser invocados, como um botão.Used for controls that can be invoked, such as a button.
MultipleViewPattern IMultipleViewProvider Usado para controles que podem alternar entre as várias representações do mesmo conjunto de informações, dados ou filhos.Used for controls that can switch between multiple representations of the same set of information, data, or children. Por exemplo, um controle de exibição de lista onde os dados estão disponíveis nas exibições de miniatura, bloco, ícone, lista ou detalhes.For example, a list view control where data is available in thumbnail, tile, icon, list, or detail views.
RangeValuePattern IRangeValueProvider Usado para controles que têm um intervalo de valores que podem ser aplicados ao controle.Used for controls that have a range of values that can be applied to the control. Por exemplo, um controle giratório contendo anos pode ter um intervalo de 1900 a 2010, enquanto outro controle giratório apresentando meses teria um intervalo de 1 a 12.For example, a spinner control containing years might have a range of 1900 to 2010, while another spinner control presenting months would have a range of 1 to 12.
ScrollPattern IScrollProvider Usado para controles que podem rolar.Used for controls that can scroll. 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.For example, a control that has scroll bars that are active when there is more information than can be displayed in the viewable area of the control.
ScrollItemPattern IScrollItemProvider Usado para controles que têm itens individuais em uma lista que rola.Used for controls that have individual items in a list that scrolls. Por exemplo, um controle de lista que tem itens individuais na lista de rolagem, como um controle de caixa de combinação.For example, a list control that has individual items in the scroll list, such as a combo box control.
SelectionPattern ISelectionProvider Usado para controles de contêiner de seleção.Used for selection container controls. Por exemplo, caixas de listagem e caixas de combinação.For example, list boxes and combo boxes.
SelectionItemPattern ISelectionItemProvider Usado para itens individuais em controles de contêiner de seleção, como caixas de listagem e caixas de combinação.Used for individual items in selection container controls, such as list boxes and combo boxes.
TablePattern ITableProvider Usado para controles que têm uma grade, bem como informações de cabeçalho.Used for controls that have a grid as well as header information. Por exemplo, planilhas do Microsoft Excel.For example, Microsoft Excel worksheets.
TableItemPattern ITableItemProvider Usado para itens em uma tabela.Used for items in a table.
TextPattern ITextProvider Usado para controles de edição e documentos que expõem informações textuais.Used for edit controls and documents that expose textual information.
TogglePattern IToggleProvider Usado para controles em que o estado pode ser alternado.Used for controls where the state can be toggled. Por exemplo, caixas de seleção e itens de menu verificável.For example, check boxes and checkable menu items.
TransformPattern ITransformProvider Usado para controles que podem ser redimensionados, movidos e girados.Used for controls that can be resized, moved, and rotated. Usos típicos para o padrão de controle transformar são em designers, formulários, editores gráficos e aplicativos de desenho.Typical uses for the Transform control pattern are in designers, forms, graphical editors, and drawing applications.
ValuePattern IValueProvider Permite que os clientes obtenham ou definam um valor em controles que não dão suporte a um intervalo de valores.Allows clients to get or set a value on controls that do not support a range of values. Por exemplo, um seletor de data e hora.For example, a date time picker.
WindowPattern IWindowProvider Expõe informações específicas ao Windows, um conceito fundamental para o sistema operacional Microsoft Windows.Exposes information specific to windows, a fundamental concept to the Microsoft Windows operating system. Exemplos de controles que são janelas 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.Examples of controls that are windows are top-level application windows (Microsoft Word, Microsoft Windows Explorer, and so on), multiple-document interface (MDI) child windows, and dialogs.

Consulte tambémSee also