Browse Source

Fix alpha missing in color conversion helpers

Equbuxu 3 years ago
parent
commit
639391c7bd

+ 4 - 2
PixiEditor/Helpers/Extensions/SkiaWPFHelpers.cs

@@ -5,8 +5,10 @@ namespace PixiEditor.Helpers.Extensions
 {
     public static class SkiaWPFHelpers
     {
-        public static SKColor ToSKColor(this Color color) => new(color.R, color.G, color.B);
+        public static SKColor ToOpaqueSKColor(this Color color) => new(color.R, color.G, color.B);
+        public static SKColor ToSKColor(this Color color) => new(color.R, color.G, color.B, color.A);
 
-        public static Color ToColor(this SKColor color) => Color.FromRgb(color.Red, color.Green, color.Blue);
+        public static Color ToOpaqueColor(this SKColor color) => Color.FromRgb(color.Red, color.Green, color.Blue);
+        public static Color ToColor(this SKColor color) => Color.FromArgb(color.Alpha, color.Red, color.Green, color.Blue);
     }
 }

+ 1 - 1
PixiEditor/Models/Commands/Search/ColorSearchResult.cs

@@ -28,7 +28,7 @@ namespace PixiEditor.Models.Commands.Search
 
         public static DrawingImage GetIcon(SKColor color)
         {
-            var drawing = new GeometryDrawing() { Brush = new SolidColorBrush(color.ToColor()), Pen = new(Brushes.White, 1) };
+            var drawing = new GeometryDrawing() { Brush = new SolidColorBrush(color.ToOpaqueColor()), Pen = new(Brushes.White, 1) };
             var geometry = new EllipseGeometry(new(5, 5), 5, 5) { };
             drawing.Geometry = geometry;
             return new DrawingImage(drawing);

+ 3 - 3
PixiEditor/ViewModels/SubViewModels/Main/ClipboardViewModel.cs

@@ -69,14 +69,14 @@ namespace PixiEditor.ViewModels.SubViewModels.Main
 
             if (CanPasteColor())
             {
-                color = SKColor.Parse(Clipboard.GetText().Trim()).ToColor();
+                color = SKColor.Parse(Clipboard.GetText().Trim()).ToOpaqueColor();
             }
             else
             {
                 color = Colors.Transparent;
             }
 
-            return ColorSearchResult.GetIcon(color.ToSKColor());
+            return ColorSearchResult.GetIcon(color.ToOpaqueSKColor());
         }
     }
-}
+}