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

Note

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

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

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

コントロール パターンの完全なリストについては、「 UI Automation Control Patterns Overview」をご覧ください。

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

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

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

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

// 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 オートメーション プロパティの詳細については、「クライアントの UI オートメーション プロパティ」を参照してください。

GetPropertyValue メソッドに加え、共通言語ランタイム (CLR) アクセサーを介してパターンの UI オートメーション プロパティにアクセスすることで、プロパティ値を取得することもできます。

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

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

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

関連項目