控件模式和接口
列出 Microsoft UI 自动化控件模式、客户端用于访问这些模式的类以及提供程序用于实现这些模式的接口。
本主题中的表描述了 Microsoft UI 自动化控件模式。 此表还列出了 UI 自动化客户端用于访问控件模式的类和 UI 自动化提供程序用来实现这些模式的接口。 从 UI 自动化客户端的角度来看,“控件模式”列显示模式名称,Control Pattern Availability Property Identifiers 中将该名称列为常数值。 从 UI 自动化提供程序的角度来看,其中每个模式都是一个 PatternInterface 常量名称。 “类提供程序接口”列显示提供程序为向自定义 XAML 控件提供此模式而实现的接口名称。
有关如何实现用于公开控件模式和实现接口的自定义自动化对等的详细信息,请参阅自定义自动化对等。
在实现控件模式时,还应查阅 UI 自动化提供程序文档,该文档说明了客户端在控件模式下将达到的部分预期,无论使用哪个 UI 框架实现控件模式,均不会影响这些预期。 常规 UI 自动化提供程序文档中列出的部分信息将影响对等实现的方式及正确为该模式提供支持的方式。 请参阅实现 UI 自动化控件模式,并查看记录了你计划实现的模式的页面。
控件模式 | 类提供程序接口 | 说明 |
---|---|---|
批注 | IAnnotationProvider | 用于公开文档注释的属性。 |
靠接 | IDockProvider | 用于可在停靠容器中停靠的控件。 例如,工具栏或工具调色板。 |
Drag | IDragProvider | 用于支持可拖动控件或包含可拖动项目的控件。 |
DropTarget | IDropTargetProvider | 用于支持可作为拖放操作目标的控件。 |
ExpandCollapse | IExpandCollapseProvider | 用于支持通过直观展开来显示更多内容并通过折叠来隐藏内容的控件。 |
网格 | IGridProvider | 用于支持网格功能(如调整大小和移动到指定单元格)的控件。 请注意,网格本身并不实现此模式,因为它虽然提供布局,却不是控件。 |
GridItem | IGridItemProvider | 用于在网格内具有单元格的控件。 |
Invoke | IInvokeProvider | 用于可调用的控件,例如 Button。 |
ItemContainer | IItemContainerProvider | 支持应用程序查找容器(例如虚拟化列表)中的元素。 |
MultipleView | IMultipleViewProvider | 用于可在同一组信息、数据或子级的多个表示形式之间切换的控件。 |
ObjectModel | IObjectModelProvider | 用于公开指向文档基础对象模型的指针。 |
RangeValue | IRangeValueProvider | 用于具有一系列可应用于该控件的值的控件。 例如,包含年份的微调框控件的数据范围可能介于 1900 至当前年份之间,而另一个呈现月份的微调框控件的数据范围介于 1 至 12 之间。 |
滚动 | IScrollProvider | 用于可滚动的控件。 例如,一个控件其所具有的滚动条在控件的可视区域中存在的信息超过了可被显示的信息时,便处于活动状态。 |
ScrollItem | IScrollItemProvider | 用于一种控件,该控件具有可滚动列表中的各个项。 例如,一个列表控件,该控件具有滚动列表中的各个项,如组合框控件。 |
选择 | ISelectionProvider | 用于选择容器控件。 例如,ListBox 和 ComboBox。 |
SelectionItem | ISelectionItemProvider | 用于选择容器控件中的各个项,如列表框和组合框。 |
电子表格 | ISpreadsheetProvider | 用于公开电子表格或其他基于网格的文档的内容。 |
SpreadsheetItem | ISpreadsheetItemProvider | 用于公开电子表格或其他基于网格的文档的单元格属性。 |
样式 | IStylesProvider | 用于描述具有特定样式、填充颜色、填充图案或形状的 UI 元素。 |
SynchronizedInput | ISynchronizedInputProvider | 启用 UI 自动化客户端应用,将鼠标或键盘输入定向到特定的 UI 元素。 |
表 | ITableProvider | 用于具有网格以及标头信息的控件。 例如,表格日历控件。 |
TableItem | ITableItemProvider | 用于表中的项。 |
Text | ITextProvider | 用于可公开文本信息的编辑控件和文档。 另请参阅 ITextRangeProvider 和 ITextProvider2。 |
TextChild | ITextChildProvider | 用于访问距元素最近的支持 Text 控件模式的上级元素。 |
TextEdit | 无可用的托管类 | 访问用于修改文本的控件,例如通过输入法编辑器 (IME) 执行自动更正或启用输入组合的控件。 |
TextRange | ITextRangeProvider | 访问实现 ITextProvider 的文本容器中的一段连续文本。 另请参阅 ITextRangeProvider2。 |
切换 | IToggleProvider | 用于在其中可切换状态的控件。 例如,可选中的 CheckBox 和菜单项。 |
转换 | ITransformProvider | 用于可调整大小、移动和旋转的控件。 Transform 控件模式通常用于设计器、窗体、图形编辑器和绘图应用程序。 |
值 | IValueProvider | 允许客户端在不支持某个值范围的控件上获取或设置值。 |
VirtualizedItem | IVirtualizedItemProvider | 公开容器中已虚拟化并需要作为 UI 自动化元素可完全进行访问的项目。 |
窗口 | IWindowProvider | 向 Microsoft Windows 操作系统公开特定于窗口的信息(一种基本概念)。 用作窗口的控件示例包括子窗口和对话框。 |
注意
现有的 XAML 控件中可能并不会包含所有这些模式的实现。 其中部分模式具有接口,目的仅在于通过模式的常规 UI 自动化框架定义来支持奇偶校验,以及支持需要使用纯粹自定义实现来支持该模式的自动化对等方案。
注意
Windows Phone 应用商店应用不支持此处列出的所有 UI 自动化控件模式。 Annotation、Dock、Drag、DropTarget、ObjectModel 是一些不受支持的模式。