ScrollPattern.ScrollPatternInformation.HorizontallyScrollable Property

Definition

Получает значение, указывающее, может ли элемент модели автоматизации пользовательского интерфейса прокручиваться по горизонтали.Gets a value that indicates whether the UI Automation element can scroll horizontally.

public:
 property bool HorizontallyScrollable { bool get(); };
public bool HorizontallyScrollable { get; }
member this.HorizontallyScrollable : bool
Public ReadOnly Property HorizontallyScrollable As Boolean

Property Value

Boolean

Значение true, если элемент модели автоматизации пользовательского интерфейса может прокручиваться по горизонтали; в противном случае значение false.true if the UI Automation element can scroll horizontally; otherwise false. Значение по умолчанию — false.The default value is false.

Examples

В следующем примере шаблон элемента управления ScrollPattern получен из элемента модели автоматизации пользовательского интерфейса и используется для горизонтальной прокрутки элемента на запрошенную сумму.In the following example, a ScrollPattern control pattern is obtained from a UI Automation element and is then used to horizontally scroll the element the requested amount.

///--------------------------------------------------------------------
/// <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 horizontally scroll the requested amount.
/// </summary>
/// <param name="targetControl">
/// The automation element of interest.
/// </param>
/// <param name="hScrollAmount">
/// The requested horizontal scroll amount.
/// </param>
///--------------------------------------------------------------------
private void ScrollElementHorizontally(
    AutomationElement targetControl,
    ScrollAmount hScrollAmount)
{
    if (targetControl == null)
    {
        throw new ArgumentNullException(
            "AutomationElement argument cannot be null.");
    }

    ScrollPattern scrollPattern = GetScrollPattern(targetControl);

    if (scrollPattern == null)
    {
        return;
    }

    if (!scrollPattern.Current.HorizontallyScrollable)
    {
        return;
    }

    try
    {
        scrollPattern.ScrollHorizontal(hScrollAmount);
    }
    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 horizontally scroll the requested amount.
''' </summary>
''' <param name="targetControl">
''' The automation element of interest.
''' </param>
''' <param name="hScrollAmount">
''' The requested horizontal scroll amount.
''' </param>
'''--------------------------------------------------------------------
Private Sub ScrollElementHorizontally( _
ByVal targetControl As AutomationElement, _
ByVal hScrollAmount 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

    If Not scrollPattern.Current.HorizontallyScrollable Then
        Return
    End If

    Try
        scrollPattern.ScrollHorizontal(hScrollAmount)
    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

Remarks

Это свойство может быть динамическим.This property can be dynamic. Например, область содержимого элемента модели автоматизации пользовательского интерфейса может не превышать текущую видимую область, то есть HorizontallyScrollable false.For example, the content area of the UI Automation element might not be larger than the current viewable area, meaning HorizontallyScrollable is false. Однако изменение размера элемента Автоматизация пользовательского интерфейсаUI Automation или добавление дочерних элементов может увеличить границы области содержимого за пределами видимой области, указывая на то, что HorizontallyScrollable true.However, resizing the Автоматизация пользовательского интерфейсаUI Automation element or adding child items can increase the bounds of the content area beyond the viewable area, indicating that HorizontallyScrollable is true.

Applies to