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

メモメモ

このドキュメントは、System.Windows.Automation 名前空間で定義されているマネージ UI Automation クラスを使用する .NET Framework 開発者を対象としています。UI Automationに関する最新情報については、「Windows Automation API: UI Automation (Windows オートメーション API: UI オートメーション)」を参照してください。

ここでは、Microsoft UI Automation コントロール パターンについて説明します。 コントロール パターンは、コントロールの型や外観に関係なく、コントロールの機能を分類したり公開したりするための手段です。

UI Automationでは、共通のコントロール動作を表すコントロール パターンを使用します。 たとえば、ボタンなどの呼び出し可能なコントロールには Invoke コントロール パターンを使用し、リスト ボックス、リスト ビュー、コンボ ボックスなどのスクロール バーを持つコントロールには Scroll コントロール パターンを使用します。 各コントロール パターンがそれぞれ別個の機能を表すため、これらを組み合わせて、特定のコントロールでサポートされる機能の完全なセットを記述できます。

メモメモ

集約コントロールは、親によって公開された機能のuser interface (UI) を提供する子コントロールで構築されたコントロールであり、それぞれの子コントロールに通常関連付けられているコントロール パターンをすべて実装する必要があります。一方で、これらの同じコントロール パターンを子コントロールで実装する必要はありません。

 

このトピックは、次のセクションで構成されています。

  • UI オートメーション コントロール パターン コンポーネント
  • UI オートメーションのプロバイダーおよびクライアント
  • 動的コントロール パターン
  • コントロール パターン クラスとインターフェイス
  • 関連トピック

 

UI オートメーション コントロール パターン コンポーネント

コントロール パターンは、コントロールで使用できる個々の機能を定義するために必要なメソッド、プロパティ、イベント、およびリレーションシップをサポートします。

  • UI オートメーション要素とその親、子、兄弟との間のリレーションシップは、UI Automation ツリー内の要素の構造を表します。

  • メソッドは、UI オートメーション クライアントがコントロールを操作できるようにします。

  • プロパティとイベントは、コントロール パターンの機能に関する情報と、コントロールの状態に関する情報を提供します。

コントロール パターンと UI の関係は、インターフェイスとComponent Object Model (COM) オブジェクトの関係に似ています。 COM では、オブジェクトを照会してサポートされるインターフェイスを要求し、それらのインターフェイスを使用して機能にアクセスできます。 UI Automation では、UI オートメーション クライアントは、どのコントロール パターンがサポートされるかをコントロールに問い合わせた後、そのサポートされるコントロール パターンによって公開されるプロパティ、メソッド、イベント、および構造体を介して、コントロールと対話できます。 たとえば、複数行エディット ボックスでは、UI オートメーション プロバイダーは、IScrollProvider を実装します。 クライアントは、AutomationElementScrollPattern コントロール パターンをサポートすることを認識すると、そのコントロール パターンによって公開されたプロパティ、メソッド、およびイベントを使用して、コントロールの操作、またはコントロールに関する情報へのアクセスができます。

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

UI オートメーション プロバイダーは、コントロールでサポートされる特定の機能の適切な動作を公開するコントロール パターンを実装します。

UI オートメーション クライアントは、UI Automation コントロール パターン クラスのメソッドおよびプロパティにアクセスし、これらを使用して UI に関する情報を取得したり、UI を操作します。 これらのコントロール パターン クラスは、System.Windows.Automation 名前空間にあります (たとえば InvokePatternSelectionPattern など)。

クライアントは、AutomationElement メソッド (AutomationElement.GetCurrentPropertyValueAutomationElement.GetCachedPropertyValue など) またはcommon language runtime (CLR) アクセサーを使用して、パターンの UI Automation プロパティにアクセスします。 コントロール パターンには、それぞれ 1 つのフィールド メンバー (たとえば InvokePattern.Pattern や SelectionPattern.Pattern) があり、このフィールド メンバーは、コントロール パターンを識別し、AutomationElement のそのパターンを取得するために GetCachedPattern または GetCurrentPattern にパラメーターとして渡されます。

動的コントロール パターン

すべてのコントロールが、常に同じコントロール パターン セットをサポートしているわけではありません。 コントロール パターンがサポートされていると見なされるのは、UI オートメーション クライアントがこれらを使用できる場合です。 たとえば、複数行エディット ボックスは、表示可能領域に表示できる量を超えるテキストの行が含まれている場合にのみ、垂直方向のスクロールを有効にします。 テキストが削除されてスクロールする必要がなくなると、スクロールは無効になります。 この例の場合、ScrollPattern コントロール パターンは、コントロールの現在の状態 (エディット ボックス内のテキスト量) に応じて動的にサポートされています。

コントロール パターン クラスとインターフェイス

UI Automation コントロール パターンを次の表に示します。 この表では、コントロール パターンにアクセスするために UI オートメーション クライアントが使用するクラス、およびコントロール パターンを実装する UI オートメーション プロバイダーが使用するインターフェイスも示しています。

コントロール パターン クラス

プロバイダー インターフェイス

説明

DockPattern

IDockProvider

ドッキング コンテナー内にドッキングできるコントロールに使用されます。 たとえば、ツール バー、ツール パレットなどがあります。

ExpandCollapsePattern

IExpandCollapseProvider

展開または折りたたむことができるコントロールに使用されます。 たとえば、[ファイル] メニューのような、アプリケーションのメニュー項目などです。

GridPattern

IGridProvider

指定したセルのサイズ設定や指定したセルへの移動など、グリッド機能をサポートするコントロールに使用されます。 たとえば、Windows エクスプローラーの大きいアイコン表示や、Microsoft Word のヘッダーがない単純なテーブルなどです。

GridItemPattern

IGridItemProvider

グリッド内にセルを持つコントロールに使用されます。 個々のセルは、GridItem パターンをサポートする必要があります。 たとえば、Microsoft Windows Explorerの詳細表示の各セルなどです。

InvokePattern

IInvokeProvider

ボタンなど、呼び出すことができるコントロールに使用されます。

MultipleViewPattern

IMultipleViewProvider

同じ情報セットの複数の表現、データ、または子の間で切り替えることができるコントロールに使用されます。 たとえば、サムネイル、タイル、アイコン、リスト、または詳細の表示でデータを使用できるリスト ビュー コントロールなどです。

RangeValuePattern

IRangeValueProvider

コントロールに適用できる値の範囲を持つコントロールに使用されます。 たとえば、年を格納するスピン コントロールは 1900 ~ 2010 の範囲を持ち、月を表す別のスピン コントロールは 1 ~ 12 の範囲を持ちます。

ScrollPattern

IScrollProvider

スクロールできるコントロールに使用されます。 たとえば、コントロールの表示可能領域に表示できる量を超える情報がある場合にアクティブになるスクロール バーを持つコントロールなどです。

ScrollItemPattern

IScrollItemProvider

スクロールされるリスト内に個々の項目を持つコントロールに使用されます。 たとえば、コンボ ボックス コントロールのような、スクロール リスト内に個々の項目を持つリスト コントロールなどです。

SelectionPattern

ISelectionProvider

選択コンテナー コントロールに使用されます。 たとえば、リスト ボックス、コンボ ボックスなどです。

SelectionItemPattern

ISelectionItemProvider

リスト ボックスやコンボ ボックスなどの選択コンテナー コントロール内の個々の項目に使用されます。

TablePattern

ITableProvider

グリッドおよびヘッダー情報を持つコントロールに使用されます。 たとえば、Microsoft Excel ワークシートなどです。

TableItemPattern

ITableItemProvider

テーブル内の項目に使用されます。

TextPattern

ITextProvider

エディット コントロールと、テキスト情報を公開するドキュメントに使用されます。

TogglePattern

IToggleProvider

状態を切り替えることができるコントロールに使用されます。 たとえば、チェック ボックス、チェック可能なメニュー項目などです。

TransformPattern

ITransformProvider

サイズ変更、移動、および回転できるコントロールに使用されます。 Transform コントロール パターンは、デザイナー、フォーム、グラフィカル エディター、および描画アプリケーション内で使用されるのが一般的です。

ValuePattern

IValueProvider

値の範囲をサポートしていないコントロールでクライアントが値を取得または設定できるようにします。 たとえば、日付指定などです。

WindowPattern

IWindowProvider

ウィンドウに固有の情報、すなわち、Microsoft Windows オペレーティング システムの基本概念を公開します。 ウィンドウであるコントロールの例として、トップレベルのアプリケーション ウィンドウ (Microsoft Word、Microsoft Windows Explorerなど)、multiple-document interface (MDI) の子ウィンドウ、ダイアログなどがあります。

参照

概念

クライアントの UI オートメーション コントロール パターン

UI オートメーション クライアントのコントロール パターン マッピング

UI オートメーションの概要

クライアントの UI オートメーション プロパティ

クライアントの UI オートメーション イベント