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));
}