|
|
@@ -5,6 +5,7 @@ using System;
|
|
|
using System.Linq;
|
|
|
using Avalonia.Controls.Primitives;
|
|
|
using Avalonia.Controls.Templates;
|
|
|
+using Avalonia.Input;
|
|
|
using Avalonia.Media;
|
|
|
using Xunit;
|
|
|
|
|
|
@@ -59,6 +60,64 @@ namespace Avalonia.Controls.UnitTests.Primitives
|
|
|
Assert.Equal(50, target.Value);
|
|
|
}
|
|
|
|
|
|
+ [Fact]
|
|
|
+ public void Thumb_DragDelta_Event_Should_Raise_Scroll_Event()
|
|
|
+ {
|
|
|
+ var target = new ScrollBar
|
|
|
+ {
|
|
|
+ Template = new FuncControlTemplate<ScrollBar>(Template),
|
|
|
+ };
|
|
|
+
|
|
|
+ target.ApplyTemplate();
|
|
|
+
|
|
|
+ var track = (Track)target.GetTemplateChildren().First(x => x.Name == "track");
|
|
|
+
|
|
|
+ var raisedEvent = Assert.Raises<ScrollEventArgs>(
|
|
|
+ handler => target.Scroll += handler,
|
|
|
+ handler => target.Scroll -= handler,
|
|
|
+ () =>
|
|
|
+ {
|
|
|
+ var ev = new VectorEventArgs
|
|
|
+ {
|
|
|
+ RoutedEvent = Thumb.DragDeltaEvent,
|
|
|
+ Vector = new Vector(0, 0)
|
|
|
+ };
|
|
|
+
|
|
|
+ track.Thumb.RaiseEvent(ev);
|
|
|
+ });
|
|
|
+
|
|
|
+ Assert.Equal(ScrollEventType.ThumbTrack, raisedEvent.Arguments.ScrollEventType);
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void Thumb_DragComplete_Event_Should_Raise_Scroll_Event()
|
|
|
+ {
|
|
|
+ var target = new ScrollBar
|
|
|
+ {
|
|
|
+ Template = new FuncControlTemplate<ScrollBar>(Template),
|
|
|
+ };
|
|
|
+
|
|
|
+ target.ApplyTemplate();
|
|
|
+
|
|
|
+ var track = (Track)target.GetTemplateChildren().First(x => x.Name == "track");
|
|
|
+
|
|
|
+ var raisedEvent = Assert.Raises<ScrollEventArgs>(
|
|
|
+ handler => target.Scroll += handler,
|
|
|
+ handler => target.Scroll -= handler,
|
|
|
+ () =>
|
|
|
+ {
|
|
|
+ var ev = new VectorEventArgs
|
|
|
+ {
|
|
|
+ RoutedEvent = Thumb.DragCompletedEvent,
|
|
|
+ Vector = new Vector(0, 0)
|
|
|
+ };
|
|
|
+
|
|
|
+ track.Thumb.RaiseEvent(ev);
|
|
|
+ });
|
|
|
+
|
|
|
+ Assert.Equal(ScrollEventType.EndScroll, raisedEvent.Arguments.ScrollEventType);
|
|
|
+ }
|
|
|
+
|
|
|
[Fact]
|
|
|
public void ScrollBar_Can_AutoHide()
|
|
|
{
|