功能更新
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
using System.Globalization;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace Melskin.Converters.Internal;
|
||||
|
||||
/// <summary>
|
||||
/// IntensityToEmbossMarginRightBottomConverter 转换器用于将浮点数强度值转换为 Thickness 结构,以应用于右下边距。
|
||||
/// 该转换器主要用于创建浮雕效果的控件中,通过调整边距来模拟不同强度下的视觉效果。
|
||||
/// 当输入的强度值为1时,产生的边距最小,从而使得着色边框更加明显。随着强度值减小,边距增大,
|
||||
/// 使着色部分看起来更模糊或更不显著。
|
||||
/// </summary>
|
||||
[ValueConversion(typeof(double), typeof(Thickness))]
|
||||
internal sealed class IntensityToEmbossMarginRightBottomConverter : IValueConverter
|
||||
{
|
||||
public static readonly IntensityToEmbossMarginRightBottomConverter Instance = new();
|
||||
|
||||
public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
|
||||
{
|
||||
var intensity = (double)(value ?? 0.5);
|
||||
//数值为1的时候边距最小,露出的着色边框越大
|
||||
var marginValue = 4 * intensity;
|
||||
return new Thickness(marginValue, marginValue, -marginValue, -marginValue);
|
||||
}
|
||||
|
||||
public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
|
||||
{
|
||||
return Binding.DoNothing;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user