|
|
@@ -46,6 +46,8 @@ namespace Avalonia.Controls
|
|
|
Thumb.DragStartedEvent.AddClassHandler<Slider>(x => x.OnThumbDragStarted, RoutingStrategies.Bubble);
|
|
|
Thumb.DragDeltaEvent.AddClassHandler<Slider>(x => x.OnThumbDragDelta, RoutingStrategies.Bubble);
|
|
|
Thumb.DragCompletedEvent.AddClassHandler<Slider>(x => x.OnThumbDragCompleted, RoutingStrategies.Bubble);
|
|
|
+ SmallChangeProperty.OverrideDefaultValue<Slider>(1);
|
|
|
+ LargeChangeProperty.OverrideDefaultValue<Slider>(10);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
@@ -112,12 +114,27 @@ namespace Avalonia.Controls
|
|
|
|
|
|
private void DecreaseClick(object sender, RoutedEventArgs e)
|
|
|
{
|
|
|
- Value = Math.Max(Value - LargeChange, Minimum);
|
|
|
+ ChangeValueBy(-LargeChange);
|
|
|
}
|
|
|
|
|
|
private void IncreaseClick(object sender, RoutedEventArgs e)
|
|
|
{
|
|
|
- Value = Math.Min(Value + LargeChange, Maximum);
|
|
|
+ ChangeValueBy(LargeChange);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void ChangeValueBy(double by)
|
|
|
+ {
|
|
|
+ if (IsSnapToTickEnabled)
|
|
|
+ {
|
|
|
+ by = by < 0 ? Math.Min(-TickFrequency, by) : Math.Max(TickFrequency, by);
|
|
|
+ }
|
|
|
+
|
|
|
+ var value = Value;
|
|
|
+ var next = SnapToTick(Math.Max(Math.Min(value + by, Maximum), Minimum));
|
|
|
+ if (next != value)
|
|
|
+ {
|
|
|
+ Value = next;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/// <summary>
|