diff --git a/src/Skia/Avalonia.Skia/DrawingContextImpl.cs b/src/Skia/Avalonia.Skia/DrawingContextImpl.cs index 353354da5e..10e746cbd5 100644 --- a/src/Skia/Avalonia.Skia/DrawingContextImpl.cs +++ b/src/Skia/Avalonia.Skia/DrawingContextImpl.cs @@ -501,7 +501,6 @@ namespace Avalonia.Skia { var paint = new SKPaint { - IsStroke = false, IsAntialias = true }; @@ -558,6 +557,13 @@ namespace Avalonia.Skia /// private PaintWrapper CreatePaint(Pen pen, Size targetSize) { + // In Skia 0 thickness means - use hairline rendering + // and for us it means - there is nothing rendered. + if (pen.Thickness == 0d) + { + return default; + } + var rv = CreatePaint(pen.Brush, targetSize); var paint = rv.Paint; diff --git a/tests/Avalonia.RenderTests/Shapes/RectangleTests.cs b/tests/Avalonia.RenderTests/Shapes/RectangleTests.cs index d48765a360..6d4a840641 100644 --- a/tests/Avalonia.RenderTests/Shapes/RectangleTests.cs +++ b/tests/Avalonia.RenderTests/Shapes/RectangleTests.cs @@ -20,6 +20,26 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes { } + [Fact] + public async Task Rectangle_0px_Stroke() + { + Decorator target = new Decorator + { + Padding = new Thickness(8), + Width = 200, + Height = 200, + Child = new Rectangle + { + Fill = Brushes.Transparent, + Stroke = Brushes.Black, + StrokeThickness = 0 + } + }; + + await RenderToFile(target); + CompareImages(); + } + [Fact] public async Task Rectangle_1px_Stroke() { diff --git a/tests/TestFiles/Direct2D1/Shapes/Rectangle/Rectangle_0px_Stroke.expected.png b/tests/TestFiles/Direct2D1/Shapes/Rectangle/Rectangle_0px_Stroke.expected.png new file mode 100644 index 0000000000..27aacea049 Binary files /dev/null and b/tests/TestFiles/Direct2D1/Shapes/Rectangle/Rectangle_0px_Stroke.expected.png differ diff --git a/tests/TestFiles/Skia/Shapes/Rectangle/Rectangle_0px_Stroke.expected.png b/tests/TestFiles/Skia/Shapes/Rectangle/Rectangle_0px_Stroke.expected.png new file mode 100644 index 0000000000..27aacea049 Binary files /dev/null and b/tests/TestFiles/Skia/Shapes/Rectangle/Rectangle_0px_Stroke.expected.png differ