34 lines
1.6 KiB
C#
34 lines
1.6 KiB
C#
using System.Globalization;
|
||
using System.Windows.Data;
|
||
|
||
namespace VariaStudio.Converters;
|
||
|
||
/// <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;
|
||
}
|