Browse Source

Don't draw null geometry in GeometryDrawing.

And add a guard to `DrawingContext` to detect having a null `Geometry` passed, as we do for `DrawImage`, `DrawText` etc.

Fixes #2053.
pull/2339/head
Steven Kirk 7 years ago
parent
commit
f322501852
  1. 2
      src/Avalonia.Visuals/Media/DrawingContext.cs
  2. 7
      src/Avalonia.Visuals/Media/GeometryDrawing.cs

2
src/Avalonia.Visuals/Media/DrawingContext.cs

@ -109,6 +109,8 @@ namespace Avalonia.Media
/// <param name="geometry">The geometry.</param>
public void DrawGeometry(IBrush brush, Pen pen, Geometry geometry)
{
Contract.Requires<ArgumentNullException>(geometry != null);
if (brush != null || PenIsVisible(pen))
{
PlatformImpl.DrawGeometry(brush, pen, geometry.PlatformImpl);

7
src/Avalonia.Visuals/Media/GeometryDrawing.cs

@ -31,7 +31,10 @@
public override void Draw(DrawingContext context)
{
context.DrawGeometry(Brush, Pen, Geometry);
if (Geometry != null)
{
context.DrawGeometry(Brush, Pen, Geometry);
}
}
public override Rect GetBounds()
@ -41,4 +44,4 @@
return Geometry?.GetRenderBounds(pen) ?? new Rect();
}
}
}
}

Loading…
Cancel
Save