refactor: use custom color picker instead of Avalonia.Controls.ColorPicker

This commit is contained in:
leo 2024-09-10 11:02:34 +08:00
parent bede3663ec
commit 69117e8ee9
No known key found for this signature in database
6 changed files with 257 additions and 9 deletions

View file

@ -3,6 +3,7 @@ using System.Globalization;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Data;
using Avalonia.Data.Converters;
using Avalonia.Media;
@ -43,19 +44,27 @@ namespace SourceGit.Converters
return Models.Bookmarks.Brushes[bookmark];
});
public class ToColorConverter : IValueConverter
public class ToColorHexStringConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return Color.FromUInt32((uint)value);
return Color.FromUInt32((uint)value).ToString();
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return ((Color)value).ToUInt32();
try
{
var color = Color.Parse(value as string);
return color.ToUInt32();
}
catch
{
return BindingOperations.DoNothing;
}
}
}
public static readonly ToColorConverter ToColor = new ToColorConverter();
public static readonly ToColorHexStringConverter ToColorHexString = new ToColorHexStringConverter();
}
}