Export (0) Print
Expand All

ScrollPattern.Scroll Method

Scrolls the visible region of the content area horizontally and vertically.

Namespace:  System.Windows.Automation
Assembly:  UIAutomationClient (in UIAutomationClient.dll)

public void Scroll(
	ScrollAmount horizontalAmount,
	ScrollAmount verticalAmount
)

Parameters

horizontalAmount
Type: System.Windows.Automation.ScrollAmount

The horizontal increment specific to the control. NoScroll should be passed in if the control cannot be scrolled in this direction.

verticalAmount
Type: System.Windows.Automation.ScrollAmount

The vertical increment specific to the control. NoScroll should be passed in if the control cannot be scrolled in this direction.

ExceptionCondition
ArgumentException

A control supports SmallIncrement values exclusively for horizontal or vertical scrolling but a LargeIncrement value is passed in.

InvalidOperationException

An attempt is made to scroll in an unsupported direction.

In the following example, a ScrollPattern control pattern is obtained from an AutomationElement and is then used to scroll the element a requested amount either horizontally or vertically.

///-------------------------------------------------------------------- 
/// <summary> 
/// Obtains a ScrollPattern control pattern from an  
/// automation element. 
/// </summary> 
/// <param name="targetControl">
/// The automation element of interest. 
/// </param> 
/// <returns> 
/// A ScrollPattern object. 
/// </returns> 
///-------------------------------------------------------------------- 
private ScrollPattern GetScrollPattern(
    AutomationElement targetControl)
{
    ScrollPattern scrollPattern = null;

    try
    {
        scrollPattern =
            targetControl.GetCurrentPattern(
            ScrollPattern.Pattern)
            as ScrollPattern;
    }
    // Object doesn't support the ScrollPattern control pattern 
    catch (InvalidOperationException)
    {
        return null;
    }

    return scrollPattern;
}


...


///-------------------------------------------------------------------- 
/// <summary> 
/// Obtains a ScrollPattern control pattern from an automation  
/// element and attempts to scroll the requested amounts. 
/// </summary> 
/// <param name="targetControl">
/// The automation element of interest. 
/// </param> 
/// <param name="hScrollAmount">
/// The requested horizontal scroll amount. 
/// </param> 
/// <param name="vScrollAmount">
/// The requested vertical scroll amount. 
/// </param> 
///-------------------------------------------------------------------- 
private void ScrollElement(
    AutomationElement targetControl,
    ScrollAmount hScrollAmount,
    ScrollAmount vScrollAmount)
{
    if (targetControl == null)
    {
        throw new ArgumentNullException(
            "AutomationElement argument cannot be null.");
    }

    ScrollPattern scrollPattern = GetScrollPattern(targetControl);

    if (scrollPattern == null)
    {
        return;
    }

    try
    {
        scrollPattern.Scroll(hScrollAmount, vScrollAmount);
    }
    catch (InvalidOperationException)
    {
        // Control not able to scroll in the direction requested; 
        // when scrollable property of that direction is False 
        // TO DO: error handling.
    }
    catch (ArgumentException)
    {
        // If a control supports SmallIncrement values exclusively  
        // for horizontal or vertical scrolling but a LargeIncrement  
        // value (NaN if not supported) is passed in. 
        // TO DO: error handling.
    }
}

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Show:
© 2015 Microsoft