using System.Globalization; using System.Windows.Data; namespace NeumUI.Converters.Internal; /// /// IntensityToSlotShadowMarginConverter 类用于将阴影强度(double类型)转换为阴影边距(Thickness类型)。此转换器特别适用于需要根据阴影强度动态调整UI元素阴影边距的场景。 /// 该类实现了IValueConverter接口,提供了从双精度浮点数到厚度值的单向转换逻辑。转换过程中,基于输入的强度值计算出一个偏移量,并以此构建新的 Thickness 实例来表示阴影边距。 /// 注意:此转换器不支持反向转换操作。 /// [ValueConversion(typeof(double), typeof(Thickness))] internal class IntensityToSlotShadowMarginConverter : IValueConverter { public static readonly IntensityToSlotShadowMarginConverter Instance = new(); public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture) { var intensity = (double)(value ?? 0); //此处与中央Margin匹配 var offset = 4 + intensity * 4; return new Thickness(0, 0, offset, offset); } public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) { return Binding.DoNothing; } }