浏览代码

Fixed NullReferenceException for ImageBush with null Source

Karnah 7 年之前
父节点
当前提交
d8615643dd

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

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

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

@@ -32,6 +32,23 @@ namespace Avalonia.Direct2D1.RenderTests.Media
             get { return System.IO.Path.Combine(OutputPath, "github_icon_small.png"); }
             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);
+        }
+
         [Fact]
         [Fact]
         public async Task ImageBrush_Tile_Fill()
         public async Task ImageBrush_Tile_Fill()
         {
         {