UI 自动化事件概述
更新:2007 年 11 月
Microsoft UI 自动化事件通知是辅助技术(如屏幕阅读器和屏幕放大镜)的主要功能。当 UI 中发生某些情况时,这些 UI 自动化客户端跟踪 UI 自动化提供程序引发的事件,并使用该信息通知最终用户。
如果没有任何客户端侦听任何事件,那么可以通过允许提供程序应用程序有选择地引发事件来提高效率,具体取决于所有客户端是订阅了这些事件,还是根本没有订阅。
本主题包括下列各节。
- 事件的类型
- UI 自动化事件标识符
- UI 自动化事件参数
- 相关主题
事件的类型
UI 自动化事件分属以下类别。
事件 |
说明 |
---|---|
属性更改 |
当 UI 自动化元素或控件模式上的属性更改时引发。例如,如果客户端需要监视应用程序的复选框控件,则可注册以侦听 ToggleState 属性上的属性更改事件。当选中或取消选中复选框控件时,提供程序将引发事件,且客户端可采取必要的操作。 |
元素操作 |
当 UI 更改因最终用户或编程活动而造成时引发,例如,单击按钮或通过 InvokePattern 调用按钮时。 |
结构更改 |
当 UI 自动化的树结构更改时引发。当新的 UI 项在桌面上可见、隐藏或从桌面上删除时,结构会发生更改。 |
全局桌面更改 |
当对客户端的全局焦点进行操作时引发,例如,焦点从一个元素转换到另一个元素,或窗口关闭时。 |
某些事件并不一定意味着 UI 的状态发生了变化。例如,如果用户使用 Tab 键移动到文本输入字段,然后单击按钮以更新该字段,那么将引发 TextChangedEvent,即使用户实际上并没有更改文本也如此。处理事件时,客户端应用程序可能需要先检查是否确实更改了内容,然后再采取操作。
即使 UI 的状态没有更改,也可能引发以下事件。
AutomationPropertyChangedEvent(取决于已更改的属性)
ElementSelectedEvent
InvalidatedEvent
TextChangedEvent
UI 自动化事件标识符
Microsoft UI 自动化事件由 AutomationEvent 对象标识。Id 属性中包含唯一标识该类事件的值。
下表列出了 Id 的可能值,以及用于事件参数的类型。请注意,除了类不同之外,客户端和提供程序所用标识符的字段名称完全相同。
UI 自动化事件参数
以下类封装事件参数。
类 |
说明 |
---|---|
包含有关异步加载内容的信息,包括加载完成的百分比。 |
|
包含有关不需要额外数据的简单事件的信息。 |
|
包含有关输入焦点从一个元素更改到另一个元素的信息。此类事件由 UI 自动化系统,而不是提供程序引发。 |
|
包含有关元素或控件模式的属性值更改的信息。 |
|
包含有关 UI 自动化树更改的信息。 |
|
包含有关窗口关闭的信息。 |
所有事件参数类都包含一个 EventId 成员。此标识符封装在 AutomationEvent 中。
提供程序从 AutomationElementIdentifiers 和控件模式标识符类(如 DockPatternIdentifiers)中的字段获取用于标识事件的 AutomationEvent 对象。客户端应用程序从 AutomationElement 和控件模式类(如 DockPattern)中的字段获取等效的字段。
有关事件标识符的列表,请参见客户端的 UI 自动化事件。