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

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

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

メモメモ :

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

このトピックには次のセクションが含まれています。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

コントロール パターン クラス プロバイダ インターフェイス 説明

DockPattern

IDockProvider

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

ExpandCollapsePattern

IExpandCollapseProvider

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

GridPattern

IGridProvider

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

GridItemPattern

IGridItemProvider

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

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 エクスプローラなど)、マルチドキュメント インターフェイス (MDI) の子ウィンドウ、ダイアログなどがあります。

参照

概念

クライアントの UI オートメーション コントロール パターン
UI オートメーション クライアントのコントロール パターン マッピング
UI オートメーションの概要
クライアントの UI オートメーション プロパティ
クライアントの UI オートメーション イベント