实现 UI 自动化 Selection 控件模式
更新:2007 年 11 月
本主题介绍实现 ISelectionProvider 的准则和约定,其中包括有关事件和属性的信息。本主题的结尾列出了指向其他参考资料的链接。
SelectionPattern 控件模式用于支持可充当可选择子项集合的容器的控件。此元素的子元素必须实现 ISelectionItemProvider。有关实现此控件模式的控件示例,请参见 UI 自动化客户端的控件模式映射。
本主题包括下列各节。
- 实现准则和约定
- ISelectionProvider 必需的成员
- 异常
- 相关主题
实现准则和约定
实现 Selection 控件模式时,请注意以下准则和约定:
实现 ISelectionProvider 的控件允许选择单个或多个子项。例如,列表框、列表视图和树视图支持多重选择,而组合框、滑块和单选按钮组支持单选。
具有最小值、最大值和连续范围的控件(如“音量”滑块控件)应实现 IRangeValueProvider 而非 ISelectionProvider。
管理实现 IRawElementProviderFragmentRoot 的子控件的单选控件(如“显示属性”对话框中的“屏幕分辨率”滑块或如下所示的 Microsoft Word 中的“颜色选取器”选择控件)应实现 ISelectionProvider;其子控件应实现 IRawElementProviderFragment 和 ISelectionItemProvider。
色块字符串映射示例
- 菜单不支持 SelectionPattern。如果处理包括图形和文本的菜单项(如 Microsoft Outlook 中“视图”菜单中的“预览窗格”项)并需要传达状态,则应实现 IToggleProvider。
ISelectionProvider 必需的成员
ISelectionProvider 接口需要以下属性、方法和事件。
必需的成员 |
类型 |
说明 |
---|---|---|
属性 |
应使用 AddAutomationPropertyChangedEventHandler 和 RemoveAutomationPropertyChangedEventHandler 支持 property-changed 事件。 |
|
属性 |
应使用 AddAutomationPropertyChangedEventHandler 和 RemoveAutomationPropertyChangedEventHandler 支持 property-changed 事件。 |
|
方法 |
无 |
|
事件 |
在容器中的选择发生显著更改时以及需要发送的添加和移除事件超过 InvalidateLimit 常量所允许的数量时引发。 |
IsSelectionRequired 和 CanSelectMultiple 属性可以是动态的。例如,默认情况下一个控件的初始状态可能未选择任何项,指示 IsSelectionRequired 为 false。但是,在选择项后,该控件必须始终至少选择一项。同样,在少数情况下,一个控件在初始化时可能允许选择多项,但此后仅允许进行单选。
异常
提供程序必须引发以下异常。
异常类型 |
条件 |
---|---|
如果控件未启用。 |
|
如果控件被隐藏。 |