实现 UI 自动化 Selection 控件模式

注意注意

本文档的目标读者是欲使用 System.Windows.Automation 命名空间中定义的托管 UI Automation类的 .NET Framework 开发人员。有关 UI Automation的最新信息,请参见 Windows Automation API: UI Automation(Windows 自动化 API:UI 自动化)。

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

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

本主题包括下列各节。

  • 实现准则和约定
  • ISelectionProvider 必需的成员
  • 异常
  • 相关主题

实现准则和约定

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

色块字符串映射示例

突出显示黄色的颜色选取器。

  • 菜单不支持 SelectionPattern。 如果处理包括图形和文本的菜单项(如 Microsoft Outlook 中**“视图”菜单中的“预览窗格”**项)并需要传达状态,则应实现 IToggleProvider

ISelectionProvider 必需的成员

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

必需的成员

类型

注释

CanSelectMultiple

Property

应使用 AddAutomationPropertyChangedEventHandlerRemoveAutomationPropertyChangedEventHandler 支持 property-changed 事件。

IsSelectionRequired

Property

应使用 AddAutomationPropertyChangedEventHandlerRemoveAutomationPropertyChangedEventHandler 支持 property-changed 事件。

GetSelection

方法

InvalidatedEvent

Event

在容器中的选择发生显著更改时以及需要发送的添加和移除事件超过 InvalidateLimit 常量所允许的数量时引发。

IsSelectionRequiredCanSelectMultiple 属性可以是动态的。 例如,默认情况下一个控件的初始状态可能未选择任何项,指示 IsSelectionRequired 为 false。 但是,在选择项后,该控件必须始终至少选择一项。 同样,在少数情况下,一个控件在初始化时可能允许选择多项,但此后仅允许进行单选。

异常

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

异常类型

Condition

ElementNotEnabledException

如果控件未启用。

InvalidOperationException

如果控件被隐藏。

请参见

任务

在 UI 自动化提供程序中支持控件模式

在 UI 自动化中使用缓存

概念

UI 自动化控件模式概述

客户端的 UI 自动化控件模式

实现 UI 自动化 SelectionItem 控件模式

UI 自动化树概述