diff --git a/src/Ursa.Themes.Semi/Controls/RangeSlider.axaml b/src/Ursa.Themes.Semi/Controls/RangeSlider.axaml index 1ab4c95..7d66251 100644 --- a/src/Ursa.Themes.Semi/Controls/RangeSlider.axaml +++ b/src/Ursa.Themes.Semi/Controls/RangeSlider.axaml @@ -52,6 +52,7 @@ MinimumProperty = RangeTrack.MinimumProperty.AddOwner(); public double Minimum { @@ -144,7 +147,7 @@ public class RangeSlider: TemplatedControl { var oldValue = args.OldValue.Value; var newValue = args.NewValue.Value; - if (oldValue != newValue) + if (Math.Abs(oldValue - newValue) > Tolerance) { RaiseEvent(new RangeValueChangedEventArgs(ValueChangedEvent, this, oldValue, newValue, isLower)); } diff --git a/src/Ursa/Controls/RangeSlider/RangeTrack.cs b/src/Ursa/Controls/RangeSlider/RangeTrack.cs index 7d2a48b..a5e282d 100644 --- a/src/Ursa/Controls/RangeSlider/RangeTrack.cs +++ b/src/Ursa/Controls/RangeSlider/RangeTrack.cs @@ -22,7 +22,9 @@ public class RangeTrack: Control public const string PC_Vertical = ":vertical"; private double _density; private Vector _lastDrag; - + + private const double Tolerance = 0.0001; + public static readonly StyledProperty MinimumProperty = AvaloniaProperty.Register( nameof(Minimum), coerce: CoerceMinimum, defaultBindingMode:BindingMode.TwoWay); @@ -165,7 +167,7 @@ public class RangeTrack: Control { var oldValue = args.OldValue.Value; var newValue = args.NewValue.Value; - if (oldValue != newValue) + if (Math.Abs(oldValue - newValue) > Tolerance) { RaiseEvent(new RangeValueChangedEventArgs(ValueChangedEvent, this, oldValue, newValue, isLower)); }