次の方法で共有


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

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

この概要では、Microsoft 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 メソッド ( AutomationElement.GetCurrentPropertyValueAutomationElement.GetCachedPropertyValueなど) または共通言語ランタイム (CLR) アクセサーを使用して、パターンの UI オートメーション プロパティにアクセスします。 各コントロール パターン クラスには、そのコントロール パターンを識別するフィールド メンバー (InvokePattern.PatternSelectionPattern.Patternなど) があり、GetCachedPatternのそのパターンを取得するためにGetCurrentPatternまたはAutomationElementするパラメーターとして渡すことができます。

動的制御パターン

一部のコントロールは、常に同じコントロール パターンのセットをサポートするとは限りません。 コントロール パターンは、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 Windows に固有の情報を公開します。これは、Microsoft Windows オペレーティング システムの基本的な概念です。 ウィンドウであるコントロールの例としては、最上位のアプリケーション ウィンドウ (Microsoft Word、Microsoft Windows エクスプローラーなど)、複数ドキュメント インターフェイス (MDI) の子ウィンドウ、ダイアログがあります。

こちらも参照ください