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

メモメモ

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

ここでは、UI オートメーション クライアントのコントロール パターンについて説明します。 UI オートメーション クライアントがコントロール パターンを使用して、user interface (UI) の情報にアクセスするしくみについても説明します。

コントロール パターンは、コントロールの型や外観に関係なく、コントロールの機能を分類したり公開したりするための手段です。 UI オートメーション クライアントは、AutomationElement を調べてどのコントロール パターンがサポートされているか特定し、そのコントロールの動作を確実に実行することができます。

すべてのコントロール パターンの一覧については、「UI オートメーション コントロール パターンの概要」を参照してください。

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

  • コントロール パターンの取得
  • コントロール パターンのプロパティの取得
  • 可変パターンを持つコントロール
  • 関連トピック

コントロール パターンの取得

クライアントは、AutomationElement.GetCachedPattern または AutomationElement.GetCurrentPattern を呼び出して、AutomationElement からコントロール パターンを取得します。

クライアントは、GetSupportedPatterns メソッドまたは個別の IsPatternAvailable プロパティ (IsTextPatternAvailableProperty など) を使用して、パターンまたはパターンのグループが AutomationElement でサポートされているかどうかを判断できます。 ただし、サポートされているプロパティを確認してコントロール パターンを取得するよりも、コントロール パターンを取得して null 参照に対するテストを試行する方が、プロセス間呼び出しが少なくなるため効率的です。

AutomationElement から TextPattern コントロール パターンを取得する方法を次の例に示します。

// Specify the control type we're looking for, in this case 'Document'
PropertyCondition cond = new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Document);

// target --> The root AutomationElement.
AutomationElement textProvider = target.FindFirst(TreeScope.Descendants, cond);

targetTextPattern = textProvider.GetCurrentPattern(TextPattern.Pattern) as TextPattern;

if (targetTextPattern == null)
{
    Console.WriteLine("Root element does not contain a descendant that supports TextPattern.");
    return;
}

コントロール パターンのプロパティの取得

クライアントは、AutomationElement.GetCachedPropertyValue または AutomationElement.GetCurrentPropertyValue を呼び出し、返されたオブジェクトを適切な型にキャストすることで、コントロール パターンのプロパティ値を取得することができます。 UI Automation プロパティの詳細については、「クライアントの UI オートメーション プロパティ」を参照してください。

GetPropertyValue メソッドに加え、common language runtime (CLR) アクセサーを介してパターンの UI Automation プロパティにアクセスすることでプロパティ値を取得することもできます。

可変パターンを持つコントロール

一部のコントロール型は、状態やコントロールの使用方法に応じた複数のパターンをサポートしています。 可変パターンを持つコントロールの例としては、リスト ビュー (サムネイル、タイル、アイコン、リスト、詳細)、Microsoft Excel グラフ (円、線、横棒、式を使用するセル値)、Microsoft Word のドキュメント領域 (標準、Web レイアウト、アウトライン、印刷レイアウト、印刷プレビュー)、Microsoft Windows Media Player スキンなどがあります。

カスタム コントロール型を実装するコントロールは、機能を表すために必要なコントロール パターンの任意のセットを持つことができます。

参照

処理手順

UI オートメーションを使用したコントロールの呼び出し

UI オートメーションを使用した、チェック ボックスのトグル状態の取得

ValuePattern 挿入テキストのサンプル

TextPattern の検索および選択のサンプル

InvokePattern、ExpandCollapsePattern、および TogglePattern のサンプル

概念

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

その他の技術情報

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

UI オートメーション テキスト パターン