mirror of
https://github.com/tribufu/ServerManagers
synced 2026-05-06 15:17:34 +00:00
56 lines
1.6 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|