实现 UI 自动化滚动控件模式
注意
本文档适用于想要使用 System.Windows.Automation 命名空间中定义的托管 UI 自动化类的 .NET Framework 开发人员。 有关 UI 自动化的最新信息,请参阅 Windows 自动化 API:UI 自动化。
本文介绍了实现 IScrollProvider的准则和约定,包括有关事件和属性的信息。 本主题的结尾列出了指向其他参考资料的链接。
ScrollPattern 控件模式用于支持充当子对象集合的可滚动容器的控件。 尽管通常需要使用滚动条来支持滚动功能,但该控件并不需要。
不使用滚动条的滚动控件示例
有关实现此控件的控件示例,请参阅 Control Pattern Mapping for UI Automation Clients。
实现准则和约定
在实现 Scroll 控件模式时,请注意以下准则和约定:
此控件的子级必须实现 IScrollItemProvider。
容器控件的滚动条不支持 ScrollPattern 控件模式。 相反,它们必须支持 RangeValuePattern 控件模式。
当以百分比度量滚动时,与滚动刻度相关的所有值或量必须规范化为 0 到 100 的范围。
HorizontallyScrollableProperty 和 VerticallyScrollableProperty 独立于 IsEnabledProperty。
如果 HorizontallyScrollableProperty =
false
则 HorizontalViewSizeProperty 应设置为 100%,且 HorizontalScrollPercentProperty 应设置为 NoScroll。 类似,如果 VerticallyScrollableProperty =false
则 VerticalViewSizeProperty 应设置为 100%,且 VerticalScrollPercentProperty 应设置为 NoScroll。 这让 UI 自动化客户端能够在 SetScrollPercent 方法内使用这些属性值,同时在客户端不涉及滚动的方向被激活时避免争用条件。HorizontalScrollPercent 是特定于区域设置。 设置 HorizontalScrollPercent = 100.0 时,则对于英语等从左到右阅读的语言,必须将控件的滚动位置设置为等于其最右位置。 而对于阿拉伯语等从右到左阅读的语言,设置 HorizontalScrollPercent = 100.0 时必须将滚动位置设置为最左位置。
IScrollProvider 必需的成员
实现 IScrollProvider需要以下属性和方法。
必需的成员 | 成员类型 | 说明 |
---|---|---|
HorizontalScrollPercent | 属性 | 无 |
VerticalScrollPercent | 属性 | 无 |
HorizontalViewSize | 属性 | 无 |
VerticalViewSize | 属性 | 无 |
HorizontallyScrollable | 属性 | 无 |
VerticallyScrollable | 属性 | 无 |
Scroll | 方法 | 无 |
SetScrollPercent | 方法 | 无 |
没有与此控件模式关联的事件。
例外
提供程序必须引发以下异常。
异常类型 | 条件 |
---|---|
ArgumentException | 如果控件仅对于水平或垂直滚动支持Scroll 值,而传入了 SmallIncrement 值,则 LargeIncrement 将引发此异常。 |
ArgumentException | 当传入值无法转换为双精度时,SetScrollPercent 会引发此异常。 |
ArgumentOutOfRangeException | 当传入大于 100 或小于 0 的值(-1 除外,因为它等效于SetScrollPercent )时, NoScroll会引发此异常。 |
InvalidOperationException | 当尝试在不支持的方向进行滚动时, Scroll 和 SetScrollPercent 都引发此异常。 |