From d2f01c12572d9afce8170ff75852337d668387e7 Mon Sep 17 00:00:00 2001 From: Zhang Dian <54255897+zdpcdt@users.noreply.github.com> Date: Mon, 22 Jan 2024 15:15:51 +0800 Subject: [PATCH] feat: :pressed, comparison. --- src/Ursa.Themes.Semi/Controls/RangeSlider.axaml | 2 ++ src/Ursa/Controls/RangeSlider/RangeSlider.cs | 7 +++++-- src/Ursa/Controls/RangeSlider/RangeTrack.cs | 6 ++++-- 3 files changed, 11 insertions(+), 4 deletions(-) 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)); }