using System.Globalization; using System.Windows.Data; namespace Melskin.Converters.Internal; // 返回 1.0 - 输入值,用于反向不透明度 /// /// InverseOpacityConverter 类用于实现不透明度的反转转换。给定一个介于 0.0 到 1.0 之间的双精度浮点数值,该转换器将返回 1.0 减去输入值的结果,从而达到反向不透明度的效果。 /// 此转换器特别适用于需要动态调整 UI 元素不透明度的应用场景中,比如在某些控件的状态切换时,改变背景或前景内容的可见性。 /// internal class InverseOpacityConverter : IValueConverter { /// /// 获取 InverseOpacityConverter 的唯一实例,用于在 XAML 或代码中直接引用以执行不透明度反转转换。 /// 该属性提供了一个静态的、可重用的 InverseOpacityConverter 实例,避免了每次使用时都创建新的对象, /// 从而优化了性能。此实例特别适用于需要频繁调整 UI 元素不透明度的应用场景,如动态改变控件背景或前景内容的可见性。 /// public static InverseOpacityConverter Instance { get; } = new(); /// public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture) => value is double d ? 1.0 - d : 1.0; /// public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) => Binding.DoNothing; }