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 8 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> /// <param name="geometry">The geometry.</param>
public void DrawGeometry(IBrush brush, Pen pen, Geometry geometry) public void DrawGeometry(IBrush brush, Pen pen, Geometry geometry)
{ {
Contract.Requires<ArgumentNullException>(geometry != null);
if (brush != null || PenIsVisible(pen)) if (brush != null || PenIsVisible(pen))
{ {
PlatformImpl.DrawGeometry(brush, pen, geometry.PlatformImpl); PlatformImpl.DrawGeometry(brush, pen, geometry.PlatformImpl);

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

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

Loading…
Cancel
Save