ScrollPattern.ScrollPatternInformation.VerticallyScrollable Propiedad

Definición

Recupera un valor que indica si el elemento de UI Automation se puede desplazar verticalmente.

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

Valor de propiedad

Boolean

true si el elemento de automatización de la interfaz de usuario se puede desplazar horizontalmente; de lo contrario, false. El valor predeterminado es false.

Ejemplos

En el ejemplo siguiente, se obtiene un ScrollPattern patrón de control de un elemento Automatización de la interfaz de usuario y, a continuación, se usa para desplazar verticalmente el elemento la cantidad solicitada.

///--------------------------------------------------------------------
/// <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="vScrollAmount">
/// The requested vertical scroll amount.
/// </param>
///--------------------------------------------------------------------
private void ScrollElementVertically(
    AutomationElement targetControl,
    ScrollAmount vScrollAmount)
{
    if (targetControl == null)
    {
        throw new ArgumentNullException(
            "AutomationElement argument cannot be null.");
    }

    ScrollPattern scrollPattern = GetScrollPattern(targetControl);

    if (scrollPattern == null)
    {
        return;
    }
    
    if (!scrollPattern.Current.VerticallyScrollable)
    {
        return;
    }

    try
    {
        scrollPattern.ScrollVertical(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 horizontally scroll the requested amount.
''' </summary>
''' <param name="targetControl">
''' The automation element of interest.
''' </param>
''' <param name="vScrollAmount">
''' The requested vertical scroll amount.
''' </param>
'''--------------------------------------------------------------------
Private Sub ScrollElementVertically( _
ByVal targetControl As AutomationElement, _
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

    If Not scrollPattern.Current.VerticallyScrollable Then
        Return
    End If

    Try
        scrollPattern.ScrollVertical(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

Comentarios

Esta propiedad puede ser dinámica. Por ejemplo, el área de contenido del elemento Automatización de la interfaz de usuario podría no ser mayor que el área visible actual, lo que significa VerticallyScrollable que es false. Sin embargo, cambiar el tamaño del elemento Automatización de la interfaz de usuario o agregar elementos secundarios puede aumentar los límites del área de contenido más allá del área visible, lo que indica que VerticallyScrollable es true.

Se aplica a