diff --git a/Intersect.Client.Framework/Gwen/Control/LabeledSlider.cs b/Intersect.Client.Framework/Gwen/Control/LabeledSlider.cs index 20d4b670ea..dd36481d7b 100644 --- a/Intersect.Client.Framework/Gwen/Control/LabeledSlider.cs +++ b/Intersect.Client.Framework/Gwen/Control/LabeledSlider.cs @@ -378,7 +378,27 @@ protected override void OnChildSizeChanged(Base child, Point oldChildSize, Point SizeToChildren(resizeX: AutoSizeToContentWidthOnChildResize, resizeY: AutoSizeToContentHeightOnChildResize); } - public void SetRange(double min, double max) => (Minimum, Maximum) = (min, max); + public void SetRange(double min, double max) + { + var actualMin = Math.Min(min, max); + var actualMax = Math.Max(min, max); + + if (actualMin > Maximum) + { + Maximum = actualMax; + Minimum = actualMin; + } + else if (actualMax < Minimum) + { + Minimum = actualMin; + Maximum = actualMax; + } + else + { + Minimum = actualMin; + Maximum = actualMax; + } + } public bool AutoSizeToContents { diff --git a/Intersect.Client.Framework/Gwen/Control/Slider.cs b/Intersect.Client.Framework/Gwen/Control/Slider.cs index f47fb7d4d4..77a8c5835d 100644 --- a/Intersect.Client.Framework/Gwen/Control/Slider.cs +++ b/Intersect.Client.Framework/Gwen/Control/Slider.cs @@ -458,8 +458,24 @@ protected virtual void SetValueInternal(double newInternalValue, bool forceUpdat /// Maximum value. public void SetRange(double min, double max) { - _minimumValue = min; - _maximumValue = max; + var actualMin = Math.Min(min, max); + var actualMax = Math.Max(min, max); + + if (actualMin > _maximumValue) + { + _maximumValue = actualMax; + _minimumValue = actualMin; + } + else if (actualMax < _minimumValue) + { + _minimumValue = actualMin; + _maximumValue = actualMax; + } + else + { + _minimumValue = actualMin; + _maximumValue = actualMax; + } } ///