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 permitem categorizar e expor a funcionalidade de um controle independente do tipo 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 Automationusa padrões de controle para representar comportamentos de controle comuns.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 agregados — criados com controles filho que fornecem a UI (interface do usuário)user interface (UI) funcionalidade for 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 Automação da interface do usuárioUI Automation árvore.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 UIUI como interfaces do as Component Object Model (com).Control patterns relate to UIUI as interfaces relate to Component Object Model (COM) objects. No COM, você pode consultar um objeto para saber a quais interfaces ele dá suporte e 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. No 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 ScrollPattern padrão de controle, 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 UIUI ou para manipular o UIUI .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 UIUI, or to manipulate the UIUI. Essas classes de padrão de controle são encontradas no System.Windows.Automation namespace (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 AutomationElement métodos (como AutomationElement.GetCurrentPropertyValue ou AutomationElement.GetCachedPropertyValue ) ou os acessadores Common Language Runtime (CLR) para acessar as Automação da interface do usuárioUI Automation Propriedades 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 Automação da interface do usuárioUI Automation padrões de controle.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.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 dimensionamento e transferência 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 possuem células nas 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 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 possuem 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 ser rolados.Used for controls that can scroll. 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.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 possuem itens individuais em uma lista de rolagem.Used for controls that have individual items in a list that scrolls. Por exemplo, um controle de lista que possua 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 nos controles do 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 possuem uma grade e 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 editar controles e documentos que exponham informações textuais.Used for edit controls and documents that expose textual information.
TogglePattern IToggleProvider Usado para controles onde é possível alternar o estado.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, transferidos e girados.Used for controls that can be resized, moved, and rotated. O padrão de controle de transformação costuma ser usado em aplicativos de desenho, design, formulários e editores gráficos.Typical uses for the Transform control pattern are in designers, forms, graphical editors, and drawing applications.
ValuePattern IValueProvider Possibilita que os clientes obtenham ou definam um valor nos 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 de janelas, 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.

Confira tambémSee also