实现 UI 自动化 Scroll 控件模式
更新:2007 年 11 月
本主题介绍实现 IScrollProvider 的准则和约定,其中包括有关事件和属性的信息。本主题的结尾列出了指向其他参考资料的链接。
ScrollPattern 控件模式用于支持可充当子对象集合的可滚动容器的控件。虽然通常都会通过该控件来使用滚动条以支持滚动功能,但这并不是必需的。
不使用滚动条的滚动控件的示例
有关实现此控件的控件示例,请参见 UI 自动化客户端的控件模式映射。
本主题包括下列各节。
- 实现准则和约定
- IscrollProvider 必需的成员
- 异常
- 相关主题
实现准则和约定
实现 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 需要以下属性和方法。
必需的成员 |
成员类型 |
说明 |
---|---|---|
属性 |
无 |
|
属性 |
无 |
|
属性 |
无 |
|
属性 |
无 |
|
属性 |
无 |
|
属性 |
无 |
|
方法 |
无 |
|
方法 |
无 |
没有与此控件模式关联的事件。
异常
提供程序必须引发以下异常。
异常类型 |
条件 |
---|---|
如果控件只对水平或垂直滚动支持 SmallIncrement 值,但却传递了 LargeIncrement 值,则 Scroll 会引发此异常。 |
|
当传递无法转换为 double 类型的值时,SetScrollPercent 会引发此异常。 |
|
当传递大于 100 或小于 0 的值(-1 除外,它等于 NoScroll)时,SetScrollPercent 会引发此异常。 |
|
当尝试在不支持的方向上滚动时,Scroll 和 SetScrollPercent 会引发此异常。 |