注
このドキュメントは、System.Windows.Automation 名前空間で定義されているマネージド UI オートメーション クラスを使用する .NET Framework 開発者を対象としています。 UI オートメーションの最新情報については、「Windows Automation API: UI オートメーション 」を参照してください。
UI オートメーション プロバイダーは、Microsoft UI オートメーション要素のプロパティを公開します。 これらのプロパティを使用すると、UI オートメーション クライアント アプリケーションは、ユーザー インターフェイス (UI) の一部 、特に静的データと動的データの両方を含むコントロールに関する情報を検出できます。
このセクションでは、Microsoft UI オートメーションのプロパティの概要について説明します。 詳細については、次のトピックを参照してください。
プロパティ識別子
すべてのプロパティは、数値と名前で識別されます。 プロパティの名前は、デバッグと診断にのみ使用されます。 プロバイダーは、数値 ID を使用して受信プロパティ要求を識別します。 ただし、クライアント アプリケーションでは、取得するプロパティを識別するために、番号と名前をカプセル化する AutomationPropertyのみを使用します。
AutomationProperty 特定のプロパティを表すオブジェクトは、さまざまなクラスのフィールドとして使用できます。 セキュリティ上の理由から、UI オートメーション プロバイダーは、Uiautomationtypes.dllに含まれるクラスの個別のセットからこれらのオブジェクトを取得します。
次の表は、 AutomationProperty ID を含むクラスごとにプロパティを分類します。
カテゴリ別プロパティ
次の表は、ID が AutomationElement および AutomationElementIdentifiers にあるプロパティを分類しています。 これらのプロパティは、すべてのコントロールに共通です。 その一部を含むすべてが、プロバイダー アプリケーションの有効期間中に静的である可能性があります。ほとんどの動的プロパティは、コントロール パターンに関連付けられています。
[プロパティ アクセス] 列には、GetCurrentPropertyValueとGetCachedPropertyValueに加えて、各プロパティのその他のアクセサーが一覧表示されます。 クライアント アプリケーションでプロパティを取得する方法の詳細については、「クライアントの UI オートメーション プロパティ」を参照してください。
注
各プロパティに関する具体的な情報については、[プロパティ アクセス ] 列のリンクに従ってください。
表示特性
プロパティ識別子 | 「プロパティ アクセス」 |
---|---|
BoundingRectangleProperty | BoundingRectangle |
CultureProperty | n/a |
HelpTextProperty | HelpText |
IsOffscreenProperty | IsOffscreen |
OrientationProperty | Orientation |
要素の種類
識別
相互作用
パターンのサポート
その他
プロパティ識別子 | 「プロパティ アクセス」 |
---|---|
IsRequiredForFormProperty | IsRequiredForForm |
IsPasswordProperty | IsPassword |
ItemStatusProperty | ItemStatus |
ローカライゼーション
UI オートメーション プロバイダーは、オペレーティング システムの言語で次のプロパティを表示する必要があります。
プロパティおよびイベント
UI オートメーションのプロパティと密接に結び付けられているのは、プロパティ変更イベントの概念です。 動的プロパティの場合、クライアント アプリケーションでは、プロパティ値が変更されたことを認識して、情報のキャッシュを更新したり、何らかの方法で新しい情報に対応したりできるようにする必要があります。
UI で何らかの変更が発生すると、プロバイダーはイベントを生成します。 たとえば、チェック ボックスがオンまたはオフの場合、プロパティ変更イベントは、プロバイダーの Toggle パターンの実装によって発生します。 プロバイダーは、クライアントがイベントをリッスンしているのか、特定のイベントをリッスンしているのかに応じて、イベントを選択的に生成できます。
すべてのプロパティ変更がイベントを生成するわけではありません。これは完全に、該当する要素の UI オートメーション プロバイダーの実装に依存します。 たとえば、リスト ボックスの標準プロキシ プロバイダーでは、 SelectionProperty が変更されたときにイベントは発生しません。 この場合、アプリケーションは代わりに ElementSelectedEventをリッスンする必要があります。
クライアントは、イベントをサブスクライブすることによってイベントをリッスンします。 イベントをサブスクライブするということは、イベントを処理できるデリゲート メソッドを作成し、そのメソッドを UI オートメーションに渡し、それらのメソッドで処理される特定のイベントを渡すことを意味します。 特にプロパティ変更イベントの場合、クライアントは AutomationPropertyChangedEventHandlerを実装する必要があります。