diff --git a/components/RangeSelector/src/RangeSelector.Properties.cs b/components/RangeSelector/src/RangeSelector.Properties.cs index 6377df37..80395dfc 100644 --- a/components/RangeSelector/src/RangeSelector.Properties.cs +++ b/components/RangeSelector/src/RangeSelector.Properties.cs @@ -131,21 +131,6 @@ private static void MinimumChangedCallback(DependencyObject d, DependencyPropert var newValue = (double)e.NewValue; var oldValue = (double)e.OldValue; - if (rangeSelector.Maximum < newValue) - { - rangeSelector.Maximum = newValue + Epsilon; - } - - if (rangeSelector.RangeStart < newValue) - { - rangeSelector.RangeStart = newValue; - } - - if (rangeSelector.RangeEnd < newValue) - { - rangeSelector.RangeEnd = newValue; - } - if (newValue != oldValue) { rangeSelector.SyncThumbs(); @@ -164,21 +149,6 @@ private static void MaximumChangedCallback(DependencyObject d, DependencyPropert var newValue = (double)e.NewValue; var oldValue = (double)e.OldValue; - if (rangeSelector.Minimum > newValue) - { - rangeSelector.Minimum = newValue - Epsilon; - } - - if (rangeSelector.RangeEnd > newValue) - { - rangeSelector.RangeEnd = newValue; - } - - if (rangeSelector.RangeStart > newValue) - { - rangeSelector.RangeStart = newValue; - } - if (newValue != oldValue) { rangeSelector.SyncThumbs(); @@ -201,29 +171,7 @@ private static void RangeMinChangedCallback(DependencyObject d, DependencyProper return; } - var newValue = (double)e.NewValue; rangeSelector.RangeMinToStepFrequency(); - - if (rangeSelector._valuesAssigned) - { - if (newValue < rangeSelector.Minimum) - { - rangeSelector.RangeStart = rangeSelector.Minimum; - } - else if (newValue > rangeSelector.Maximum) - { - rangeSelector.RangeStart = rangeSelector.Maximum; - } - - rangeSelector.SyncActiveRectangle(); - - // If the new value is greater than the old max, move the max also - if (newValue > rangeSelector.RangeEnd) - { - rangeSelector.RangeEnd = newValue; - } - } - rangeSelector.SyncThumbs(); } @@ -243,29 +191,7 @@ private static void RangeMaxChangedCallback(DependencyObject d, DependencyProper return; } - var newValue = (double)e.NewValue; rangeSelector.RangeMaxToStepFrequency(); - - if (rangeSelector._valuesAssigned) - { - if (newValue < rangeSelector.Minimum) - { - rangeSelector.RangeEnd = rangeSelector.Minimum; - } - else if (newValue > rangeSelector.Maximum) - { - rangeSelector.RangeEnd = rangeSelector.Maximum; - } - - rangeSelector.SyncActiveRectangle(); - - // If the new max is less than the old minimum then move the minimum - if (newValue < rangeSelector.RangeStart) - { - rangeSelector.RangeStart = newValue; - } - } - rangeSelector.SyncThumbs(); } } diff --git a/components/RangeSelector/src/RangeSelector.cs b/components/RangeSelector/src/RangeSelector.cs index 7cf3bdbb..6b7de792 100644 --- a/components/RangeSelector/src/RangeSelector.cs +++ b/components/RangeSelector/src/RangeSelector.cs @@ -34,7 +34,6 @@ public partial class RangeSelector : Control internal const string MinPressedState = "MinPressed"; internal const string MaxPressedState = "MaxPressed"; - private const double Epsilon = 0.01; private const double DefaultMinimum = 0.0; private const double DefaultMaximum = 10.0; private const double DefaultStepFrequency = 1; @@ -162,13 +161,14 @@ private void VerifyValues() { if (Minimum > Maximum) { - Minimum = Maximum; - Maximum = Maximum; + Maximum = Math.Min(Minimum, Maximum); + Minimum = Math.Min(Minimum, Maximum); } if (Minimum == Maximum) { - Maximum += Epsilon; + RangeStart = Minimum; + RangeEnd = Maximum; } if (!_maxSet) @@ -242,6 +242,8 @@ private void SyncThumbs(bool fromMinKeyDown = false, bool fromMaxKeyDown = false return; } + VerifyValues(); + var relativeLeft = ((RangeStart - Minimum) / (Maximum - Minimum)) * DragWidth(); var relativeRight = ((RangeEnd - Minimum) / (Maximum - Minimum)) * DragWidth(); diff --git a/tooling b/tooling index c137363c..cdf9aa9a 160000 --- a/tooling +++ b/tooling @@ -1 +1 @@ -Subproject commit c137363ca757a8b69576fed31bbe80115ffba765 +Subproject commit cdf9aa9a8dfde68ec2dfb7c3ae278b0cdbb60459