Implementing the UI Automation Scroll Control Pattern


This documentation is intended for .NET Framework developers who want to use the managed UI Automation classes defined in the System.Windows.Automation namespace. For the latest information about UI Automation, see Windows Automation API: UI Automation.

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.

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

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

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.


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