UI オートメーション プロパティの概要
メモ |
---|
このドキュメントは、System.Windows.Automation 名前空間で定義されているマネージ UI Automation クラスを使用する .NET Framework 開発者を対象としています。UI Automationに関する最新情報については、「Windows Automation API: UI Automation (Windows オートメーション API: UI オートメーション)」を参照してください。 |
UI オートメーション プロバイダーは、Microsoft UI Automation要素に関するプロパティを公開します。 これらのプロパティを使用することにより、UI オートメーション クライアント アプリケーションは、user interface (UI)、特に静的データと動的データの両方を含むコントロールについて、情報を取得できます。
このトピックは、次のセクションで構成されています。
- プロパティ識別子
- カテゴリ別のプロパティ
- ローカリゼーション
- プロパティおよびイベント
- 関連トピック
ここでは、Microsoft UI Automation プロパティについての広範な概要を示します。 詳細については、以下のトピックで説明します。
プロパティ識別子
すべてのプロパティは、番号と名前で識別されます。 プロパティの名前は、デバッグと診断にのみ使用されます。 プロバイダーは、受信するプロパティ要求を識別するために、数値の IDs を使用します。 一方、クライアント アプリケーションは、取得するプロパティを識別するために、番号と名前をカプセル化する AutomationProperty のみを使用します。
さまざまなクラスで、特定のプロパティを表す AutomationProperty オブジェクトがフィールドとして用意されています。 セキュリティ上の理由から、UI オートメーション プロバイダーはこれらのオブジェクトを、Uiautomationtypes.dll に格納されている別の一連のクラスから取得します。
AutomationProperty IDs を含むプロパティをクラス別に分類して次の表に示します。
プロパティの種類 |
クライアントの ID の取得元 |
プロバイダーの ID の取得元 |
---|---|---|
すべての要素に共通のプロパティ (以下の表を参照) |
||
ドッキング ウィンドウの位置 |
||
展開および折りたたむことができる要素の状態 |
||
グリッド内の項目のプロパティ |
||
グリッドのプロパティ |
||
複数のビューがある要素の、現在のビューとサポートされるビュー |
||
スライダーなど、一定範囲の値の中を移動する要素のプロパティ |
||
スクロール ウィンドウのプロパティ |
||
リスト内の項目のように、選択可能な項目のステータスとコンテナー |
||
選択項目を含むコントロールのプロパティ |
||
テーブル内の項目の列ヘッダーと行ヘッダー |
||
テーブルの列ヘッダーと行ヘッダー、および向き |
||
トグル コントロールの状態 |
||
移動、回転、またはサイズ変更可能な要素の機能 |
||
値を持つ要素の値と読み取り/書き込み機能 |
||
ウィンドウの機能と状態 |
カテゴリ別のプロパティ
IDs が AutomationElement および AutomationElementIdentifiers に存在するプロパティをカテゴリ別に分類して次の表に示します。 これらのプロパティは、すべてのコントロールに共通します。 一部を除くすべてのプロパティは、プロバイダー アプリケーションの有効期間中は静的であると考えられます。ほとんどの動的プロパティは、コントロール パターンに関連しています。
プロパティ アクセスの列には、GetCurrentPropertyValue と GetCachedPropertyValue に加えて、各プロパティのその他のアクセサーを示します。 クライアント アプリケーションでのプロパティの取得の詳細については、「クライアントの UI オートメーション プロパティ」を参照してください。
メモ |
---|
各プロパティの固有の情報については、プロパティ アクセス列内のリンクをたどってください。 |
表示特性
プロパティ ID |
プロパティ アクセス |
---|---|
適用なし |
|
要素の型
プロパティ ID |
プロパティ アクセス |
---|---|
識別
プロパティ ID |
プロパティ アクセス |
---|---|
相互作用
プロパティ ID |
プロパティ アクセス |
---|---|
パターンのサポート
プロパティ ID |
プロパティ アクセス |
---|---|
その他
プロパティ ID |
プロパティ アクセス |
---|---|
ローカリゼーション
UI Automation プロバイダーは、次のプロパティをオペレーティング システムの言語で提供する必要があります。
プロパティおよびイベント
UI Automationのプロパティには、プロパティ変更イベントの概念が密接に関連しています。 動的プロパティの場合、クライアント アプリケーションには、プロパティ値が変更されたことを知る手段が必要です。それにより、その情報のキャッシュを更新するなど、何らかの方法で新しい情報に反応することができます。
プロバイダーは、UI 内で何かが変更されると、イベントを発生させます。 たとえば、チェック ボックスがオンまたはオフになると、プロバイダーのトグル パターンの実装によってプロパティ変更イベントが発生します。 プロバイダーは、クライアントがイベントをリッスンしているか、または特定のイベントをリッスンしているかに応じて、選択的にイベントを発生させることができます。
すべてのプロパティの変更がイベントを発生させるとは限りません。これは、完全に要素の UI オートメーション プロバイダーの実装に依存します。 たとえば、リスト ボックスの標準のプロキシ プロバイダーは、SelectionProperty が変更されても、イベントを発生させません。 この場合、アプリケーションは ElementSelectedEvent をリッスンする必要があります。
クライアントは、イベントをサブスクライブすることでイベントをリッスンします。 イベントをサブスクライブすることは、イベントを処理できるデリゲート メソッドを作成し、それらのメソッド内で処理する特定のイベントと共に、それらのメソッドを UI Automationに渡すことを意味します。 特に、プロパティ変更イベントの場合、クライアントは、AutomationPropertyChangedEventHandler を実装する必要があります。