diff --git a/src/Avalonia.Controls/Primitives/RangeBase.cs b/src/Avalonia.Controls/Primitives/RangeBase.cs
index f1ee7c0e1a..39d00b6953 100644
--- a/src/Avalonia.Controls/Primitives/RangeBase.cs
+++ b/src/Avalonia.Controls/Primitives/RangeBase.cs
@@ -75,8 +75,11 @@ namespace Avalonia.Controls.Primitives
set
{
- ValidateDouble(value, "Minimum");
-
+ if (!ValidateDouble(value))
+ {
+ value = _minimum;
+ }
+
if (IsInitialized)
{
SetAndRaise(MinimumProperty, ref _minimum, value);
@@ -102,7 +105,10 @@ namespace Avalonia.Controls.Primitives
set
{
- ValidateDouble(value, "Maximum");
+ if (!ValidateDouble(value))
+ {
+ value = _maximum;
+ }
if (IsInitialized)
{
@@ -129,7 +135,10 @@ namespace Avalonia.Controls.Primitives
set
{
- ValidateDouble(value, "Value");
+ if (!ValidateDouble(value))
+ {
+ value = default;
+ }
if (IsInitialized)
{
@@ -167,13 +176,9 @@ namespace Avalonia.Controls.Primitives
/// Throws an exception if the double value is NaN or Inf.
///
/// The value.
- /// The name of the property being set.
- private static void ValidateDouble(double value, string property)
+ private static bool ValidateDouble(double value)
{
- if (double.IsInfinity(value) || double.IsNaN(value))
- {
- throw new ArgumentException($"{value} is not a valid value for {property}.");
- }
+ return (!double.IsInfinity(value) || !double.IsNaN(value));
}
///