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