UI オートメーション コントロール パターンの概要UI Automation Control Patterns Overview


このドキュメントは、UI オートメーションUI Automation 名前空間で定義されているマネージド System.Windows.Automation クラスを使用する .NET Framework 開発者を対象としています。This documentation is intended for .NET Framework developers who want to use the managed UI オートメーションUI Automation classes defined in the System.Windows.Automation namespace. UI オートメーションUI Automationの最新情報については、「 Windows Automation API: UI オートメーション」をご覧ください。For the latest information about UI オートメーションUI Automation, see Windows Automation API: UI Automation.

この概要では、 Microsoft UI オートメーションMicrosoft UI Automation コントロール パターンについて説明します。This overview introduces Microsoft UI オートメーションMicrosoft UI Automation control patterns. コントロール パターンは、コントロール型や外観に関係なく、コントロールの機能を分類したり公開したりするための手段です。Control patterns provide a way to categorize and expose a control's functionality independent of the control type or the appearance of the control.

UI オートメーションUI Automation は、コントロールの一般的な動作を表すコントロール パターンを使用します。uses control patterns to represent common control behaviors. たとえば、呼び出し可能なコントロール (ボタンなど) には Invoke コントロール パターンを使用し、スクロール バーを持つコントロール (リスト ボックス、リスト ビュー、コンボ ボックスなど) には Scroll コントロール パターンを使用します。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). コントロール パターンごとに別の機能を表すため、コントロール パターンを組み合わせて、特定のコントロールでサポートされる機能の完全なセットを表すことができます。Because each control pattern represents a separate functionality, they can be combined to describe the full set of functionality supported by a particular control.


集約コントロール (親によって公開される機能のために ユーザー インターフェイス (UI)user interface (UI) を提供する子コントロールで構築されるもの) は、各子コントロールに通常関連付けられるすべてのコントロール パターンを実装する必要があります。Aggregate controls—built with child controls that provide the ユーザー インターフェイス (UI)user interface (UI) for functionality exposed by the parent—should implement all control patterns normally associated with each child control. 一方、これらの同じコントロール パターンを子コントロールで実装する必要はありません。In turn, those same control patterns are not required to be implemented by the child controls.

UI オートメーションのコントロール パターン コンポーネントUI Automation Control Pattern Components

コントロール パターンは、コントロールで使用可能な機能の個々の部分を定義するために必要なメソッド、プロパティ、イベント、およびリレーションシップをサポートします。Control patterns support the methods, properties, events, and relationships needed to define a discrete piece of functionality available in a control.

  • UI オートメーション要素とその親、子、兄弟との間の関係によって、 UI オートメーションUI Automation ツリー内の要素の構造を記述します。The relationship between a UI Automation element and its parent, children and siblings describes the element's structure within the UI オートメーションUI Automation tree.

  • メソッドは、UI オートメーション クライアントがコントロールを操作できるようにします。The methods allow UI Automation clients to manipulate the control.

  • プロパティとイベントは、コントロール パターンの機能に関する情報だけでなく、コントロールの状態に関する情報も提供します。The properties and events provide information about the control pattern's functionality as well as information about the state of the control.

コントロールパターンは、 UIUI コンポーネントオブジェクトモデル (COM) オブジェクトに関連するインターフェイスとしてに関連します。Control patterns relate to UIUI as interfaces relate to Component Object Model (COM) objects. COM では、サポートしているインターフェイスをオブジェクトに問い合わせて、それらのインターフェイスを使って機能にアクセスできます。In COM, you can query an object to ask what interfaces it supports and then use those interfaces to access functionality. UI オートメーションUI Automationでは、UI オートメーション クライアントは、サポートされるコントロール パターンをコントロールに対して確認し、サポートされているコントロール パターンによって公開されているプロパティ、メソッド、イベント、構造体を使用してコントロールとやり取りすることができます。In UI オートメーションUI 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. たとえば、複数行のエディット ボックスでは、UI オートメーション プロバイダーは IScrollProviderを実装します。For example, for a multiline edit box, UI Automation providers implement IScrollProvider. クライアントは、 AutomationElementScrollPattern コントロール パターンをサポートしていることを認識すると、そのコントロール パターンによって公開されているプロパティ、メソッド、イベントを使用して、コントロールを操作したり、コントロールに関する情報にアクセスしたりできます。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.

UI オートメーションのプロバイダーおよびクライアントUI Automation Providers and Clients

UI オートメーション プロバイダーは、コントロール パターンを実装して、コントロールによってサポートされる特定の機能の適切な動作を公開します。UI Automation providers implement control patterns to expose the appropriate behavior for a specific piece of functionality supported by the control.

UI オートメーション クライアントは、 UI オートメーションUI Automation コントロール パターン クラスのメソッドとプロパティにアクセスし、それらを使用して UIUIに関する情報を取得したり、 UIUIを操作したりします。UI Automation clients access methods and properties of UI オートメーションUI Automation control pattern classes and use them to get information about the UIUI, or to manipulate the UIUI. これらのコントロール パターン クラスは、 System.Windows.Automation 名前空間 (たとえば、 InvokePatternSelectionPattern) にあります。These control pattern classes are found in the System.Windows.Automation namespace (for example, InvokePattern and SelectionPattern).

クライアントは、 AutomationElement メソッド ( AutomationElement.GetCurrentPropertyValue やなど AutomationElement.GetCachedPropertyValue ) または共通言語ランタイム (CLR) アクセサーを使用して、パターンのプロパティにアクセスし UI オートメーションUI Automation ます。Clients use AutomationElement methods (such as AutomationElement.GetCurrentPropertyValue or AutomationElement.GetCachedPropertyValue) or the common language runtime (CLR) accessors to access the UI オートメーションUI Automation properties on a pattern. 各コントロールパターンクラスには、そのコントロールパターンを識別するフィールドメンバー (やなど) があります。また、また InvokePattern.Pattern SelectionPattern.Pattern はにパラメーターとして渡して GetCachedPattern GetCurrentPattern 、そのパターンを取得することもでき 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.

動的コントロール パターンDynamic Control Patterns

一部のコントロールでは、コントロール パターンの同じセットを必ずしもサポートしません。Some controls do not always support the same set of control patterns. コントロール パターンは、UI オートメーション クライアントから使用できる場合に、サポートされていると見なされます。Control patterns are considered supported when they are available to a UI Automation client. たとえば、複数行のエディット ボックスでは、表示可能領域に表示できる行以上のテキストが含まれている場合にのみ、垂直スクロールが有効にされます。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. テキストが削除されスクロールする必要がなくなると、スクロールは無効になります。Scrolling is disabled when enough text is removed so that scrolling is no longer required. この例では、ScrollPattern コントロール パターンは、コントロールの現在の状態 (エディット ボックスのテキストの量) に応じて動的にサポートされます。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).

コントロール パターン クラスとインターフェイスControl Pattern Classes and Interfaces

UI オートメーションUI Automation コントロール パターンについて次の表で説明します。The following table describes the UI オートメーションUI Automation control patterns. またこの表には、コントロール パターンにアクセスするために UI オートメーション クライアントで使用するクラスと、それらを実装するために UI オートメーション プロバイダーで使用するインターフェイスも示します。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.

コントロール パターン クラスControl Pattern Class プロバイダーのインターフェイスProvider Interface 説明Description
DockPattern IDockProvider ドッキング コンテナーにドッキングすることができるコントロールに使用されます。Used for controls that can be docked in a docking container. たとえば、ツールバーやツール パレットです。For example, toolbars or tool palettes.
ExpandCollapsePattern IExpandCollapseProvider 展開したり折りたたんだりできるコントロールに使用されます。Used for controls that can be expanded or collapsed. たとえば、 [ファイル] メニューなどアプリケーションのメニュー項目。For example, menu items in an application such as the File menu.
GridPattern IGridProvider サイズ変更や指定したセルへの移動などグリッド機能をサポートするコントロールに使用されます。Used for controls that support grid functionality such as sizing and moving to a specified cell. たとえば、Windows エクスプローラーの大きいアイコンの表示や、Microsoft Word のヘッダーのない単純なテーブルなどです。For example, the large icon view in Windows Explorer or simple tables without headers in Microsoft Word.
GridItemPattern IGridItemProvider グリッド内にセルを持つコントロールに使用されます。Used for controls that have cells within grids. 個々のセルは GridItem パターンをサポートしている必要があります。The individual cells should support the GridItem pattern. たとえば、Microsoft Windows エクスプローラーの詳細ビューの各セルです。For example, each cell in Microsoft Windows Explorer detail view.
InvokePattern IInvokeProvider ボタンなど、呼び出すことができるコントロールに使用されます。Used for controls that can be invoked, such as a button.
MultipleViewPattern IMultipleViewProvider 情報、データ、子の同じセットの複数の表現の間で切り替えることができるコントロールに使用されます。Used for controls that can switch between multiple representations of the same set of information, data, or children. たとえば、サムネイル、タイル、アイコン、リスト、詳細ビューでデータを使用できるリスト ビュー コントロール。For example, a list view control where data is available in thumbnail, tile, icon, list, or detail views.
RangeValuePattern IRangeValueProvider コントロールに適用できる値の範囲を持つコントロールに使用されます。Used for controls that have a range of values that can be applied to the control. たとえば、年を含むスピン ボックス コントロールは 1900 から 2010 の範囲を持ち、月を表すスピン ボックス コントロールは 1 から 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 スクロールできるコントロールに使用されます。Used for controls that can scroll. たとえば、コントロールの表示可能領域に表示できる量より多くの情報があるとアクティブになるスクロール バーを持つコントロール。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 スクロールされるリスト内に個々の項目を持つコントロールに使用されます。Used for controls that have individual items in a list that scrolls. たとえば、コンボ ボックス コントロールなどスクロール リストに個々の項目を持つリスト コントロール。For example, a list control that has individual items in the scroll list, such as a combo box control.
SelectionPattern ISelectionProvider 選択コンテナー コントロールに使用されます。Used for selection container controls. たとえば、リスト ボックスやコンボ ボックス。For example, list boxes and combo boxes.
SelectionItemPattern ISelectionItemProvider リスト ボックスやコンボ ボックスなどの選択コンテナー コントロールの個々の項目に使用されます。Used for individual items in selection container controls, such as list boxes and combo boxes.
TablePattern ITableProvider グリッドとヘッダー情報を持つコントロールに使用されます。Used for controls that have a grid as well as header information. たとえば、Microsoft Excel のワークシートです。For example, Microsoft Excel worksheets.
TableItemPattern ITableItemProvider テーブル内の項目に使用されます。Used for items in a table.
TextPattern ITextProvider テキストの情報を公開するエディット コントロールとドキュメントに使用されます。Used for edit controls and documents that expose textual information.
TogglePattern IToggleProvider 状態を切り替えることができるコントロールに使用されます。Used for controls where the state can be toggled. たとえば、チェック ボックスやチェック可能なメニュー項目。For example, check boxes and checkable menu items.
TransformPattern ITransformProvider サイズ変更、移動、または回転を行えるコントロールに使用されます。Used for controls that can be resized, moved, and rotated. Transform コントロール パターンの一般的な用途は、デザイナー、フォーム、グラフィカル エディター、および描画アプリケーションでの使用です。Typical uses for the Transform control pattern are in designers, forms, graphical editors, and drawing applications.
ValuePattern IValueProvider クライアントで、値の範囲をサポートしないコントロールで値を取得したり、設定したりできます。Allows clients to get or set a value on controls that do not support a range of values. たとえば、日時指定のピッカーなどがあります。For example, a date time picker.
WindowPattern IWindowProvider ウィンドウ固有の情報を公開します。ウィンドウは、Microsoft Windows オペレーティング システムの基本概念です。Exposes information specific to windows, a fundamental concept to the Microsoft Windows operating system. ウィンドウであるコントロールの例としては、トップレベルアプリケーションウィンドウ (Microsoft Word、Microsoft Windows エクスプローラーなど)、マルチドキュメントインターフェイス (MDI) 子ウィンドウ、およびダイアログがあります。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.

関連項目See also