クライアントの UI オートメーション コントロール パターンUI Automation Control Patterns for Clients

注意

このドキュメントは、UI オートメーションUI Automation 名前空間で定義されているマネージド System.Windows.Automation クラスを使用する .NET Framework 開発者を対象としています。This documentation is intended for .NET Framework developers who want to use the managed UI オートメーションUI Automation classes defined in the System.Windows.Automation namespace. UI オートメーションUI Automationの最新情報については、「 Windows Automation API: UI Automation (Windows のオートメーション API: UI オートメーション)」を参照してください。For the latest information about UI オートメーションUI Automation, see Windows Automation API: UI Automation.

この概要では、UI オートメーション クライアントのコントロール パターンについて説明します。This overview introduces control patterns for UI Automation clients. また、UI オートメーション クライアントがコントロール パターンを使用して、 ユーザー インターフェイス (UI)user interface (UI)の情報にアクセスするしくみについても説明します。It includes information on how a UI Automation client can use control patterns to access information about the ユーザー インターフェイス (UI)user interface (UI).

コントロール パターンは、コントロール型や外観に関係なく、コントロールの機能を分類したり公開したりするための手段です。Control patterns provide a way to categorize and expose a control's functionality independent of the control type or the appearance of the control. UI オートメーション クライアントは、 AutomationElement を調べてどのコントロール パターンがサポートされているかを特定し、そのコントロールの動作を確実に実行することができます。UI Automation clients can examine an AutomationElement to determine which control patterns are supported and be assured of the behavior of the control.

コントロール パターンの完全なリストについては、「 UI Automation Control Patterns Overview」をご覧ください。For a complete list of control patterns, see UI Automation Control Patterns Overview.

コントロール パターンの取得Getting Control Patterns

クライアントは、 AutomationElement または AutomationElement.GetCachedPattern を呼び出して、 AutomationElement.GetCurrentPatternからコントロール パターンを取得します。Clients retrieve a control pattern from an AutomationElement by calling either AutomationElement.GetCachedPattern or AutomationElement.GetCurrentPattern.

クライアントは、 GetSupportedPatterns メソッドまたは個別の IsPatternAvailable プロパティ ( IsTextPatternAvailablePropertyなど) を使用して、パターンまたはパターンのグループが AutomationElementでサポートされているかどうかを特定できます。Clients can use the GetSupportedPatterns method or an individual IsPatternAvailable property (for example, IsTextPatternAvailableProperty) to determine if a pattern or group of patterns is supported on the AutomationElement. ただし、サポートされているプロパティを確認してコントロール パターンを取得するよりも、コントロール パターンを取得して null 参照に対するテストを試行する方が、プロセス間呼び出しが少なくなるため効率的です。However, it is more efficient to attempt to get the control pattern and test for a null reference than to check the supported properties and retrieve the control pattern since it results in fewer cross-process calls.

TextPattern から AutomationElementコントロール パターンを取得する方法を次の例に示します。The following example demonstrates how to get a TextPattern control pattern from an 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;
}

コントロール パターンのプロパティの取得Retrieving Properties on Control Patterns

クライアントは、 AutomationElement.GetCachedPropertyValue または AutomationElement.GetCurrentPropertyValue を呼び出し、返されたオブジェクトを適切な型にキャストすることで、コントロール パターンのプロパティ値を取得できます。Clients can retrieve the property values on control patterns by calling either AutomationElement.GetCachedPropertyValue or AutomationElement.GetCurrentPropertyValue and casting the object returned to an appropriate type. UI オートメーションUI Automation のプロパティの詳細については、「クライアントの UI オートメーションのプロパティ」を参照してください。For more information on UI オートメーションUI Automation properties, see UI Automation Properties for Clients.

GetPropertyValue メソッドに加えて、共通言語ランタイム (CLR) アクセサーを使用してプロパティ値を取得し、パターンの UI オートメーションUI Automation プロパティにアクセスすることもできます。In addition to the GetPropertyValue methods, property values can be retrieved through the common language runtime (CLR) accessors to access the UI オートメーションUI Automation properties on a pattern.

変数パターンを持つコントロールControls with Variable Patterns

一部のコントロール型は、状態やコントロールの使用方法に応じた複数のパターンをサポートしています。Some control types support different patterns depending on their state or the manner in which the control is being used. 変数パターンを持つコントロールの例としては、リストビュー (サムネイル、タイル、アイコン、リスト、詳細)、Microsoft Excel グラフ (円、線、横棒、数式を使用したセル値)、Microsoft Word のドキュメント領域 (標準、Web レイアウト、アウトライン、印刷レイアウト、印刷など) があります。プレビュー)、および Microsoft Windows Media Player スキン。Examples of controls that can have variable patterns are list views (thumbnails, tiles, icons, list, details), Microsoft Excel Charts (Pie, Line, Bar, Cell Value with a formula), Microsoft Word's document area (Normal, Web Layout, Outline, Print Layout, Print Preview), and Microsoft Windows Media Player skins.

カスタム コントロール型を実装するコントロールは、機能を表すために必要なコントロール パターンの任意のセットを持つことができます。Controls implementing custom control types can have any set of control patterns that are needed to represent their functionality.

関連項目See also