实现 UI 自动化 Selection 控件模式

注释

本文档适用于想要使用 System.Windows.Automation 命名空间中定义的托管 UI 自动化类的 .NET Framework 开发人员。 有关 UI 自动化的最新信息,请参阅 Windows 自动化 API:UI 自动化

本主题介绍实现的 ISelectionProvider准则和约定,包括有关事件和属性的信息。 主题末尾列出了指向其他引用的链接。

SelectionPattern 控件模式用于支持作为可选子项集合的容器的控件。 此元素的子级必须实现 ISelectionItemProvider。 有关实现此控件模式的控件示例,请参阅 UI 自动化客户端的控件模式映射。

实施准则和约定

实现选择控件模式时,请注意以下准则和约定:

以黄色突出显示的颜色选取器。 颜色样本字符串映射示例

  • 菜单不支持 SelectionPattern。 如果使用的是同时包含图形和文本的菜单项(如Microsoft Outlook 的“视图”菜单中的“预览窗格”项),并且需要传达状态,则应实现IToggleProvider

ISelectionProvider 的必需成员

接口需要 ISelectionProvider 以下属性、方法和事件。

必需成员 类型 注释
CanSelectMultiple 资产 应支持使用 AddAutomationPropertyChangedEventHandlerRemoveAutomationPropertyChangedEventHandler的属性更改事件。
IsSelectionRequired 资产 应支持使用 AddAutomationPropertyChangedEventHandlerRemoveAutomationPropertyChangedEventHandler的属性更改事件。
GetSelection 方法 没有
InvalidatedEvent 事件 / 活动 在容器中的选项发生重大更改并需要发送多于 InvalidateLimit 常量所允许的添加和移除事件时引发。

IsSelectionRequiredCanSelectMultiple 属性可以是动态的。 例如,默认情况下,控制元件的初始状态可能没有任何项目被选中,这表明 IsSelectionRequiredfalse。 但是,选择某个项后,控件必须始终至少选择一个项。 同样,在极少数情况下,控件可能允许在初始化时选择多个项,但随后只允许进行单个选择。

例外

提供程序必须引发以下异常。

异常类型 条件
ElementNotEnabledException 如果未启用该控件。
InvalidOperationException 如果控件处于隐藏状态。

另请参阅