Files
ShrlAlgoToolkit/AntdWpf/Converters/DoubleToCornerRadiusConverter.cs
2025-07-12 23:31:32 +08:00

49 lines
1.3 KiB
C#

namespace AntdWpf.Converters
{
using System;
using System.Globalization;
using System.Windows;
using System.Windows.Data;
using System.Windows.Markup;
[ValueConversion(typeof(double), typeof(CornerRadius))]
public class DoubleToCornerRadiusConverter : MarkupExtension, IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is not double)
{
return default(CornerRadius);
}
var d = (double)value;
if (double.IsNaN(d) || d < 1)
{
d = 0;
} else
{
// May require 50% rounded corners
double.TryParse(parameter as string, out double val);
if (val > 0)
{
d /= val;
}
}
return new CornerRadius(d);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return DependencyProperty.UnsetValue;
}
public override object ProvideValue(IServiceProvider serviceProvider)
{
return this;
}
}
}