using System.Globalization; using System.Windows.Data; namespace Melskin.Converters; /// /// 该转换器用于将输入值除以2。主要用于在XAML中绑定时处理数值,特别是当需要将某个元素的高度或其他尺寸属性减半时。 /// /// /// 此转换器实现了IValueConverter接口,提供了一个静态实例以便于在XAML中直接引用。 /// 它接受一个double类型的值作为输入,并返回该值的一半;如果输入不是double类型,则返回0。 /// 转换回方法未实现(抛出NotImplementedException),因为通常不需要逆向操作。 /// public class DivideByTwoConverter : IValueConverter { /// /// 获取单例实例的 DivideByTwoConverter,用于将输入值除以2。 /// /// /// 该属性提供了一个静态的 DivideByTwoConverter 实例,可以在需要进行数值除以2转换的地方直接引用。 /// 主要应用于WPF绑定中的值转换场景,例如在XAML中设置元素的CornerRadius时,可以使用此转换器来动态调整角的半径。 /// 注意:此转换器仅支持从double类型到double类型的转换,并且不支持逆向转换。 /// public static DivideByTwoConverter Instance { get; } = new(); /// public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture) => value is double d ? d / 2.0 : 0; /// public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) => Binding.DoNothing; }