ソースを参照

Merge pull request #1686 from Karnah/fixes/direct2d1-image-brush-null-source

ImageBrush with null Source
Steven Kirk 7 年 前
コミット
01ecb296e8

+ 4 - 0
src/Skia/Avalonia.Skia/DrawingContextImpl.cs

@@ -491,6 +491,10 @@ namespace Avalonia.Skia
             {
                 ConfigureTileBrush(ref paintWrapper, targetSize, tileBrush, tileBrushImage);
             }
+            else
+            {
+                paint.Color = new SKColor(255, 255, 255, 0);
+            }
 
             return paintWrapper;
         }

+ 1 - 1
src/Windows/Avalonia.Direct2D1/Media/DrawingContextImpl.cs

@@ -394,7 +394,7 @@ namespace Avalonia.Direct2D1.Media
             {
                 return new RadialGradientBrushImpl(radialGradientBrush, _renderTarget, destinationSize);
             }
-            else if (imageBrush != null)
+            else if (imageBrush?.Source != null)
             {
                 return new ImageBrushImpl(
                     imageBrush,

+ 18 - 0
tests/Avalonia.RenderTests/Media/ImageBrushTests.cs

@@ -32,6 +32,24 @@ namespace Avalonia.Direct2D1.RenderTests.Media
             get { return System.IO.Path.Combine(OutputPath, "github_icon_small.png"); }
         }
 
+        [Fact]
+        public async Task ImageBrush_NullSource()
+        {
+            Decorator target = new Decorator
+            {
+                Width = 200,
+                Height = 200,
+                Child = new Rectangle
+                {
+                    Margin = new Thickness(8),
+                    Fill = new ImageBrush()
+                }
+            };
+
+            await RenderToFile(target);
+            CompareImages();
+        }
+
         [Fact]
         public async Task ImageBrush_Tile_Fill()
         {

BIN
tests/TestFiles/Direct2D1/Media/ImageBrush/ImageBrush_NullSource.expected.png


BIN
tests/TestFiles/Skia/Media/ImageBrush/ImageBrush_NullSource.expected.png