次の方法で共有


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

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

この概要では、UI オートメーション クライアントのコントロール パターンについて説明します。 これには、UI オートメーション クライアントがコントロール パターンを使用してユーザー インターフェイス (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 オートメーション プロパティの詳細については、「 クライアントの UI オートメーション プロパティ」を参照してください。

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

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

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

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

こちらも参照ください