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