UI オートメーション イベントの概要
![]() |
---|
このドキュメントは、System.Windows.Automation 名前空間で定義されているマネージ UI Automation クラスを使用する .NET Framework 開発者を対象としています。UI Automationに関する最新情報については、「Windows Automation API: UI Automation (Windows オートメーション API: UI オートメーション)」を参照してください。 |
Microsoft UI Automation イベント通知は、スクリーン リーダーやスクリーン拡大鏡といった支援テクノロジにとって重要な機能です。 これらの UI オートメーション クライアントは、UI で何かが発生したときに UI オートメーション プロバイダーによって発生するイベントを追跡し、その情報を利用してエンド ユーザーに通知します。
これらのイベントにサブスクライブしているクライアントがあるか、それともイベントをリッスンするクライアントがなく、サブスクライブしているクライアントがまったくないかに応じて、プロバイダー アプリケーションが選択的にイベントを発生させることで効率が向上します。
このトピックは、次のセクションで構成されています。
- イベントの種類
- UI オートメーション イベント識別子
- UI オートメーション イベント引数
- 関連トピック
イベントの種類
UI Automation イベントは次のカテゴリに分かれます。
イベント |
説明 |
---|---|
プロパティの変更 |
UI Automation要素のプロパティまたはコントロール パターンが変更された場合に発生します。 たとえば、クライアントがアプリケーションのチェック ボックス コントロールの監視を必要とする場合に、ToggleState プロパティ上のプロパティの変更イベントをリッスンするよう登録できます。 チェック ボックス コントロールがオンまたはオフの場合、プロバイダーはイベントを発生させ、クライアントは必要なアクションを実行できます。 |
要素のアクション |
UI の変更がエンド ユーザーまたはプログラムによるアクティビティに起因する場合に発生します。たとえば、ボタンがクリックされるか、InvokePattern を通じて呼び出される場合です。 |
構造の変更 |
UI Automation ツリーの構造体が変更された場合に発生します。 構造が変更されるのは、デスクトップ上で新しい UI 項目が表示されたり、非表示になったり、除去されたりした場合です。 |
グローバル デスクトップの変更 |
ある要素から別の要素にフォーカスが移った場合やウィンドウが閉じられた場合など、クライアントをグローバルに対象とするアクションが取られた場合に発生します。 |
イベントによっては、必ずしも UI の状態が変更されたことを意味しません。 たとえば、ユーザーがテキスト入力フィールドへのタブを操作し、フィールドを更新するボタンをクリックした場合、ユーザーが実際にテキストを変更していない場合でも TextChangedEvent が発生します。 イベントを処理する際に、クライアント アプリケーションは、アクションが取られる前に実際に変更が行われたかどうかのチェックが必要となる場合があります。
次のイベントは、UI の状態が変更されていない場合でも発生する可能性があります。
AutomationPropertyChangedEvent (変更されたプロパティによって変わります)
ElementSelectedEvent
InvalidatedEvent
TextChangedEvent
UI オートメーション イベント識別子
Microsoft UI Automation イベントは、AutomationEvent オブジェクトによって識別されます。 Id プロパティには、イベントの種類を一意に識別する値が含まれます。
Id に指定できる値と、イベント引数に使用する種類を次の表に示します。 クライアントとプロバイダーが使用する識別子は、異なるクラスで同じ名前のフィールドです。
UI オートメーション イベント引数
次のクラスは、イベント引数をカプセル化します。
クラス |
説明 |
---|---|
読み込みが完了した割合など、コンテンツの非同期読み込みに関する情報を格納します。 |
|
追加データを必要としない単純なイベントに関する情報を格納します。 |
|
ある要素から別の要素への入力フォーカスの変化に関する情報を格納します。 この種類のイベントは、プロバイダーではなく、UI Automation システムによって発生します。 |
|
要素のプロパティ値またはコントロール パターンの変更に関する情報を格納します。 |
|
UI Automation ツリーの変更に関する情報を格納します。 |
|
ウィンドウ クローズに関する情報を格納します。 |
すべてのイベント引数クラスには、EventId メンバーが含まれます。 この識別子は、AutomationEvent にカプセル化されます。
イベントを識別するために使用する AutomationEvent オブジェクトは、AutomationElementIdentifiers およびコントロール パターン識別子クラス (DockPatternIdentifiers など) のフィールドからプロバイダーによって取得されます。 等価のフィールドが AutomationElement およびコントロール パターン クラス (DockPattern など) のフィールドからクライアント アプリケーションによって取得されます。
イベント識別子の一覧については、「クライアントの UI オートメーション イベント」を参照してください。