ServerManagers/src/ServerManager.Common/Converters/DoubleRangeValueConverter.cs
2021-01-07 16:23:23 +10:00

56 lines
1.6 KiB
C#

using System;
using System.Globalization;
using System.Windows.Data;
using System.Windows.Markup;
namespace ServerManagerTool.Common.Converters
{
public class DoubleRangeValueConverter : MarkupExtension, IValueConverter
{
protected double MinValue { get; set; }
protected double MaxValue { get; set; }
public DoubleRangeValueConverter()
{
MinValue = int.MinValue;
MaxValue = int.MaxValue;
}
public DoubleRangeValueConverter(double minValue)
{
MinValue = minValue;
MaxValue = int.MaxValue;
}
public DoubleRangeValueConverter(double minValue, double maxValue)
{
MinValue = minValue;
MaxValue = maxValue;
}
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
double scaledValue = System.Convert.ToDouble(value);
var sliderValue = scaledValue;
sliderValue = Math.Max(MinValue, sliderValue);
sliderValue = Math.Min(MaxValue, sliderValue);
return sliderValue;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
var sliderValue = System.Convert.ToDouble(value);
sliderValue = Math.Max(MinValue, sliderValue);
sliderValue = Math.Min(MaxValue, sliderValue);
var scaledValue = sliderValue;
return scaledValue;
}
public override object ProvideValue(IServiceProvider serviceProvider)
{
return this;
}
}
}