Freigeben über


ScrollPattern.SetScrollPercent(Double, Double) Methode

Definition

Legt die horizontale bzw. vertikale Bildlaufposition als Prozentsatz des gesamten Inhaltsbereichs im AutomationElement fest.

public:
 void SetScrollPercent(double horizontalPercent, double verticalPercent);
public void SetScrollPercent (double horizontalPercent, double verticalPercent);
member this.SetScrollPercent : double * double -> unit
Public Sub SetScrollPercent (horizontalPercent As Double, verticalPercent As Double)

Parameter

horizontalPercent
Double

Der Prozentsatz des gesamten horizontalen Inhaltsbereichs. NoScroll sollte übergeben werden, wenn das Steuerelement in diese Richtung nicht gescrollt werden kann.

verticalPercent
Double

Der Prozentsatz des gesamten vertikalen Inhaltsbereichs. NoScroll sollte übergeben werden, wenn das Steuerelement in diese Richtung nicht gescrollt werden kann.

Ausnahmen

Ein Wert, der nicht in einen Double-Wert konvertiert werden kann, wird übergeben.

Ein Wert größer als 100 oder kleiner als 0 wird übergeben (mit Ausnahme von -1, was NoScroll entspricht). Der HorizontalScrollPercent-Wert und VerticalScrollPercent-Wert werden zu 0 % oder zu 100 % normalisiert.

Es wird versucht, in eine nicht unterstützte Richtung zu scrollen.

Beispiele

Im folgenden Beispiel wird ein ScrollPattern Steuerelementmuster von einem AutomationElement abgerufen, das dann verwendet wird, um den sichtbaren Bereich an die obere linke "Startposition" des Inhaltsbereichs zu scrollen.

///--------------------------------------------------------------------
/// <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 to the 'home' position.
/// </summary>
/// <param name="targetControl">
/// The automation element of interest.
/// </param>
///--------------------------------------------------------------------
private void ScrollHome(AutomationElement targetControl)
{
    if (targetControl == null)
    {
        throw new ArgumentNullException(
            "AutomationElement argument cannot be null.");
    }

    ScrollPattern scrollPattern = GetScrollPattern(targetControl);

    if (scrollPattern == null)
    {
        return;
    }

    try
    {
        scrollPattern.SetScrollPercent(0, 0);
    }
    catch (InvalidOperationException)
    {
        // Control not able to scroll in the direction requested;
        // when scrollable property of that direction is False
        // TO DO: error handling.
    }
    catch (ArgumentOutOfRangeException)
    {
        // A value greater than 100 or less than 0 is passed in 
        // (except -1 which is equivalent to NoScroll).
        // TO DO: error handling.
    }
}
'''--------------------------------------------------------------------
''' <summary>
''' Obtains a ScrollPattern control pattern from an automation 
''' element and attempts to scroll to the top left 'home' position.
''' </summary>
''' <param name="targetControl">
''' The automation element of interest.
''' </param>
'''--------------------------------------------------------------------
Private Sub ScrollHome(ByVal targetControl As AutomationElement) 
    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.SetScrollPercent(0, 0)
    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 ArgumentOutOfRangeException
        ' A value greater than 100 or less than 0 is passed in 
        ' (except -1 which is equivalent to NoScroll).
        ' TO DO: error handling.
    End Try

End Sub

Hinweise

Diese Methode ist nur nützlich, wenn der Inhaltsbereich des Steuerelements größer als der sichtbare Bereich ist.

Das Übergeben des Werts NoScroll gibt an, dass kein Bildlauf in der angegebenen Richtung erfolgt.

Gilt für: