UI 自动化控件模式概述
控件模式是一种接口实现,它向 Microsoft UI 自动化客户端应用程序公开控件功能的特定方面。 客户端使用通过控件模式公开的属性和方法检索有关控件的特定功能的信息,或操作控件行为的特定方面。 例如,显示表格接口的控件使用 Grid 控件模式公开表中的行数和列数,并使客户端能够从表中检索项。
UI 自动化使用控件模式表示常见的控件行为。 例如,对可调用的控件(如按钮)使用 Invoke控件模式 ,对具有滚动条的控件(如列表框、列表视图或组合框)使用滚动控件模式。 由于每个控件模式都表示一个单独的功能,因此可以组合控件模式来描述特定控件支持的完整功能集。
注意
聚合控件是使用子控件生成的,子控件为父控件公开的功能提供用户界面,父控件应实现通常与其子控件关联的所有控件模式。 反过来,不需要由这些子控件实现相同的这些控件模式。
本主题包含以下各节:
UI 自动化控件模式组件
控件模式支持定义控件中可用的离散功能片段所需的方法、属性、事件和关系。
- 这些方法允许 UI 自动化客户端操作控件。
- 属性和事件提供有关控件的功能和状态的信息。
- UI 自动化 元素与其父元素、子元素和同级元素之间的关系描述了UI 自动化树中的元素结构。
控件模式与控件相关的方式与接口与组件对象模型 (COM) 对象相关的方式类似。 在 COM 中,可以查询对象以询问它支持哪些接口,然后使用这些接口访问功能。 在UI 自动化中,客户端可以询问控件支持哪些控件模式,然后通过受支持控件模式公开的属性、方法、事件和结构与控件交互。
提供程序和客户端中的控件模式
UI 自动化提供程序实现控件模式接口,以公开控件支持的特定功能片段的相应行为。 这些接口不直接公开给客户端,但由UI 自动化核心用来实现另一组客户端接口。 例如,提供程序通过 IScrollProvider 向UI 自动化公开滚动功能,UI 自动化通过 IUIAutomationScrollPattern 向客户端公开该功能。
动态控件模式
某些控件并不总是支持同一组控件模式。 例如,多行编辑控件仅当它包含的文本行多于其可查看区域中显示的数量时,才启用垂直滚动。 当删除了足够多的文本以便不再需要滚动时,滚动才被禁用。 在此示例中, 动态支持 IUIAutomationScrollPattern ,具体取决于编辑框中的文本量。
控件模式和相关接口
下表介绍 UI 自动化控件模式。 该表还列出了用于实现控件模式的提供程序接口,以及用于访问它们的客户端接口。
相关主题