2025-07-31 20:12:24 +08:00
|
|
|
|
using System.Globalization;
|
|
|
|
|
|
using System.Windows.Data;
|
|
|
|
|
|
|
2026-01-02 17:30:30 +08:00
|
|
|
|
namespace VariaStudio.Converters.Internal;
|
2025-07-31 20:12:24 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 隔行交错背景颜色
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
[ValueConversion(typeof(int), typeof(Visibility))]
|
|
|
|
|
|
public class InterlacedBackgroundConverter : IValueConverter
|
|
|
|
|
|
{
|
2025-08-20 12:10:35 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// InterlacedBackgroundConverter 的单例实例,用于提供隔行交错背景颜色的转换功能。
|
|
|
|
|
|
/// 该实例可以直接在XAML中通过静态资源引用,以便为列表项等控件设置交替背景颜色。
|
|
|
|
|
|
/// </summary>
|
2025-07-31 20:12:24 +08:00
|
|
|
|
public static readonly InterlacedBackgroundConverter Instance = new();
|
|
|
|
|
|
|
2025-08-20 12:10:13 +08:00
|
|
|
|
/// <inheritdoc />
|
2025-07-31 20:12:24 +08:00
|
|
|
|
public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
|
|
|
|
|
|
{
|
|
|
|
|
|
var line = (int)(value ?? throw new ArgumentNullException(nameof(value)));
|
|
|
|
|
|
return line % 2 == 0 ? Visibility.Collapsed : Visibility.Visible;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-08-20 12:10:13 +08:00
|
|
|
|
/// <inheritdoc />
|
2025-07-31 20:12:24 +08:00
|
|
|
|
public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
|
|
|
|
|
|
{
|
2025-08-20 12:10:13 +08:00
|
|
|
|
return Binding.DoNothing;
|
2025-07-31 20:12:24 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|