diff --git a/src/Avalonia.Base/Input/GestureRecognizers/ScrollGestureRecognizer.cs b/src/Avalonia.Base/Input/GestureRecognizers/ScrollGestureRecognizer.cs
index 7bcb81767d..02c7e7e4a3 100644
--- a/src/Avalonia.Base/Input/GestureRecognizers/ScrollGestureRecognizer.cs
+++ b/src/Avalonia.Base/Input/GestureRecognizers/ScrollGestureRecognizer.cs
@@ -16,6 +16,7 @@ namespace Avalonia.Input.GestureRecognizers
private bool _canHorizontallyScroll;
private bool _canVerticallyScroll;
private int _gestureId;
+ private int _scrollStartDistance = 30;
// Movement per second
private Vector _inertia;
@@ -38,6 +39,15 @@ namespace Avalonia.Input.GestureRecognizers
nameof(CanVerticallyScroll),
o => o.CanVerticallyScroll,
(o, v) => o.CanVerticallyScroll = v);
+
+ ///
+ /// Defines the property.
+ ///
+ public static readonly DirectProperty ScrollStartDistanceProperty =
+ AvaloniaProperty.RegisterDirect(
+ nameof(ScrollStartDistance),
+ o => o.ScrollStartDistance,
+ (o, v) => o.ScrollStartDistance = v);
///
/// Gets or sets a value indicating whether the content can be scrolled horizontally.
@@ -56,6 +66,15 @@ namespace Avalonia.Input.GestureRecognizers
get => _canVerticallyScroll;
set => SetAndRaise(CanVerticallyScrollProperty, ref _canVerticallyScroll, value);
}
+
+ ///
+ /// Gets or sets a value indicating the distance to move the pointer before scrolling is started
+ ///
+ public int ScrollStartDistance
+ {
+ get => _scrollStartDistance;
+ set => SetAndRaise(ScrollStartDistanceProperty, ref _scrollStartDistance, value);
+ }
public void Initialize(IInputElement target, IGestureRecognizerActionsDispatcher actions)
@@ -75,9 +94,6 @@ namespace Avalonia.Input.GestureRecognizers
_trackedRootPoint = e.GetPosition((Visual?)_target);
}
}
-
- // Arbitrary chosen value, probably need to move that to platform settings or something
- private const double ScrollStartDistance = 30;
// Pixels per second speed that is considered to be the stop of inertial scroll
private const double InertialScrollSpeedEnd = 5;