Files
@ a97805bae0f8
Branch filter:
Location: ATITD-Tools/Desert-Paint-Codex/Converters/PaintToBrushConverter.cs - annotation
a97805bae0f8
1.3 KiB
text/x-csharp
Added tag R_1.11.1 for changeset 0fc41569b1c7
40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 | using System;
using System.Collections.Generic;
using System.Globalization;
using Avalonia.Data.Converters;
using Avalonia.Media;
using DesertPaintCodex.Models;
namespace DesertPaintCodex.Converters
{
/// <summary>
/// Converts PaintColor to a SolidColorBrush.
/// </summary>
public class PaintToBrushConverter : IValueConverter
{
private static readonly SolidColorBrush NoColor = new();
private static readonly Dictionary<PaintColor, SolidColorBrush> BrushPool = new();
/// <inheritdoc/>
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is not PaintColor paintColor) return NoColor;
if (BrushPool.TryGetValue(paintColor, out SolidColorBrush? brush)) return brush;
brush = new SolidColorBrush(new Color(0xFF, paintColor.Red, paintColor.Green, paintColor.Blue));
BrushPool.Add(paintColor, brush);
return brush;
}
/// <inheritdoc/>
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is not SolidColorBrush brush) return new PaintColor(0, 0, 0);
Color color = brush.Color;
return new PaintColor(color.R, color.G, color.B);
}
}
}
|