Поделиться через


ScrollPattern.Scroll(ScrollAmount, ScrollAmount) Метод

Определение

Прокручивает видимый регион области содержимого по горизонтали и по вертикали.

public:
 void Scroll(System::Windows::Automation::ScrollAmount horizontalAmount, System::Windows::Automation::ScrollAmount verticalAmount);
public void Scroll (System.Windows.Automation.ScrollAmount horizontalAmount, System.Windows.Automation.ScrollAmount verticalAmount);
member this.Scroll : System.Windows.Automation.ScrollAmount * System.Windows.Automation.ScrollAmount -> unit
Public Sub Scroll (horizontalAmount As ScrollAmount, verticalAmount As ScrollAmount)

Параметры

horizontalAmount
ScrollAmount

Приращение по горизонтали, относящееся к элементу управления. Необходимо передатьNoScroll , если элемент управления невозможно прокрутить в этом направлении.

verticalAmount
ScrollAmount

Приращение по вертикали, относящееся к элементу управления. Необходимо передатьNoScroll , если элемент управления невозможно прокрутить в этом направлении.

Исключения

Элемент управления поддерживает значения SmallIncrement исключительно для прокрутки по горизонтали или вертикали, но передано значение LargeIncrement.

Попытка прокрутки в неподдерживаемом направлении.

Примеры

В следующем примере ScrollPattern шаблон элемента управления получается из AutomationElement и затем используется для прокрутки элемента по горизонтали или по вертикали.

///--------------------------------------------------------------------
/// <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.
''' </summary>
''' <param name="targetControl">
''' The automation element of interest.
''' </param>
''' <returns>
''' A ScrollPattern object.
''' </returns>
'''--------------------------------------------------------------------
Private Function GetScrollPattern( _
ByVal targetControl As AutomationElement) As ScrollPattern
    Dim scrollPattern As ScrollPattern = Nothing

    Try
        scrollPattern = DirectCast( _
        targetControl.GetCurrentPattern(scrollPattern.Pattern), _
        ScrollPattern)
    Catch
        ' Object doesn't support the ScrollPattern control pattern
        Return Nothing
    End Try

    Return scrollPattern

End Function 'GetScrollPattern
///--------------------------------------------------------------------
/// <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.
    }
}
'''--------------------------------------------------------------------
''' <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 Sub ScrollElement( _
ByVal targetControl As AutomationElement, _
ByVal hScrollAmount As ScrollAmount, _
ByVal vScrollAmount As ScrollAmount)
    If targetControl Is Nothing Then
        Throw New ArgumentNullException( _
        "AutomationElement argument cannot be null.")
    End If

    Dim scrollPattern As ScrollPattern = GetScrollPattern(targetControl)

    If scrollPattern Is Nothing Then
        Return
    End If

    Try
        scrollPattern.Scroll(hScrollAmount, vScrollAmount)
    Catch exc As InvalidOperationException
        ' Control not able to scroll in the direction requested;
        ' when scrollable property of that direction is False
        ' TO DO: error handling.
    Catch exc As 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.
    End Try

End Sub

Применяется к

См. также раздел