mirror of
https://github.com/Artemis-RGB/Artemis
synced 2026-11-12 11:56:30 +00:00
Gradient editor - WIP commit
This commit is contained in:
1 parent
38b6ca32a3
commit
98294956b1
10 files changed
+217
-68
No files matched your search
@@ -1,9 +1,11 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Media;
|
||||
using Artemis.Core.Models.Profile;
|
||||
using SkiaSharp;
|
||||
using Stylet;
|
||||
|
||||
namespace Artemis.UI.Shared.Converters
|
||||
{
|
||||
@@ -12,17 +14,17 @@ namespace Artemis.UI.Shared.Converters
|
||||
/// Converts <see cref="T:Artemis.Core.Models.Profile.ColorGradient" /> into a
|
||||
/// <see cref="T:System.Windows.Media.GradientStopCollection" />.
|
||||
/// </summary>
|
||||
[ValueConversion(typeof(ColorGradient), typeof(GradientStopCollection))]
|
||||
[ValueConversion(typeof(BindableCollection<ColorGradientColor>), typeof(GradientStopCollection))]
|
||||
public class ColorGradientToGradientStopsConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
var colorGradient = (ColorGradient) value;
|
||||
var colorGradients = (BindableCollection<ColorGradientColor>) value;
|
||||
var collection = new GradientStopCollection();
|
||||
if (colorGradient == null)
|
||||
if (colorGradients == null)
|
||||
return collection;
|
||||
|
||||
foreach (var c in colorGradient.Colors)
|
||||
foreach (var c in colorGradients.OrderBy(s => s.Position))
|
||||
collection.Add(new GradientStop(Color.FromArgb(c.Color.Alpha, c.Color.Red, c.Color.Green, c.Color.Blue), c.Position));
|
||||
return collection;
|
||||
}
|
||||
@@ -30,13 +32,13 @@ namespace Artemis.UI.Shared.Converters
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
var collection = (GradientStopCollection) value;
|
||||
var colorGradient = new ColorGradient();
|
||||
var colorGradients = new BindableCollection<ColorGradientColor>();
|
||||
if (collection == null)
|
||||
return colorGradient;
|
||||
return colorGradients;
|
||||
|
||||
foreach (var c in collection)
|
||||
colorGradient.Colors.Add(new ColorGradientColor(new SKColor(c.Color.R, c.Color.G, c.Color.B, c.Color.A), (float) c.Offset));
|
||||
return colorGradient;
|
||||
foreach (var c in collection.OrderBy(s => s.Offset))
|
||||
colorGradients.Add(new ColorGradientColor(new SKColor(c.Color.R, c.Color.G, c.Color.B, c.Color.A), (float) c.Offset));
|
||||
return colorGradients;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user