Implementing the UI Automation Scroll Control Pattern

This topic introduces guidelines and conventions for implementing IScrollProvider, including information about events and properties. Links to additional references are listed at the end of the topic.

The ScrollPattern control pattern is used to support a control that acts as a scrollable container for a collection of child objects. The control is not required to use scrollbars to support the scrolling functionality, although it commonly does.

Example of a Scrolling Control that Does Not Use Scrollbars
Scroll control without scrollbars.

For examples of controls that implement this control, see Control Pattern Mapping for UI Automation Clients.

This topic contains the following sections.

Implementation Guidelines and Conventions

When implementing the Scroll control pattern, note the following guidelines and conventions:

Required Members for IScrollProvider

The following properties and methods are required for implementing IScrollProvider.

Required member Member type Notes

HorizontalScrollPercent

Property

None

VerticalScrollPercent

Property

None

HorizontalViewSize

Property

None

VerticalViewSize

Property

None

HorizontallyScrollable

Property

None

VerticallyScrollable

Property

None

Scroll

Method

None

SetScrollPercent

Method

None

This control pattern has no associated events.

Exceptions

Providers must throw the following exceptions.

Exception Type Condition

ArgumentException

Scroll throws this exception if a control supports SmallIncrement values exclusively for horizontal or vertical scrolling, but a LargeIncrement value is passed in.

ArgumentException

SetScrollPercent throws this exception when a value that cannot be converted to a double is passed in.

ArgumentOutOfRangeException

SetScrollPercent throws this exception when a value greater than 100 or less than 0 is passed in (except -1 which is equivalent to NoScroll).

InvalidOperationException

Both Scroll and SetScrollPercent throw this exception when an attempt is made to scroll in an unsupported direction.

See Also

Community Additions

ADD
Show: