diff --git a/src/Avalonia.Controls/Primitives/ScrollBar.cs b/src/Avalonia.Controls/Primitives/ScrollBar.cs
index 0057b15150..3ddcb06303 100644
--- a/src/Avalonia.Controls/Primitives/ScrollBar.cs
+++ b/src/Avalonia.Controls/Primitives/ScrollBar.cs
@@ -6,9 +6,21 @@ using System.Reactive;
using System.Reactive.Linq;
using Avalonia.Data;
using Avalonia.Interactivity;
+using Avalonia.Input;
namespace Avalonia.Controls.Primitives
{
+ public class ScrollEventArgs : EventArgs
+ {
+ public ScrollEventArgs(ScrollEventType eventType, double newValue)
+ {
+ ScrollEventType = eventType;
+ NewValue = newValue;
+ }
+ public double NewValue { get; private set; }
+ public ScrollEventType ScrollEventType { get; private set; }
+ }
+
///
/// A scrollbar control.
///
@@ -44,6 +56,9 @@ namespace Avalonia.Controls.Primitives
{
PseudoClass(OrientationProperty, o => o == Orientation.Vertical, ":vertical");
PseudoClass(OrientationProperty, o => o == Orientation.Horizontal, ":horizontal");
+
+ Thumb.DragDeltaEvent.AddClassHandler(o => o.OnThumbDragDelta, RoutingStrategies.Bubble);
+ Thumb.DragCompletedEvent.AddClassHandler(o => o.OnThumbDragComplete, RoutingStrategies.Bubble);
}
///
@@ -88,6 +103,8 @@ namespace Avalonia.Controls.Primitives
set { SetValue(OrientationProperty, value); }
}
+ public event EventHandler Scroll;
+
///
/// Calculates whether the scrollbar should be visible.
///
@@ -140,6 +157,8 @@ namespace Avalonia.Controls.Primitives
_pageUpButton = e.NameScope.Find