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