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

適用対象

こちらもご覧ください