Files
ShrlAlgoToolkit/Melskin/Converters/DivideByTwoConverter.cs

34 lines
1.6 KiB
C#
Raw Normal View History

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