public virtual Drawing GetBaseDrawing()
{
Geometry geometry = GetGeometry();
if(geometry == null)
return null;
if(geometry.IsEmpty())
return null;
if(geometry.Bounds.Width <= 0.0)
return null;
if(geometry.Bounds.Height <= 0.0)
return null;
Brush brush = GetBrush();
Pen pen = GetPen();
if((brush == null) && (pen == null))
return null;
// Apply fill-rule...
if(geometry.GetArea() > 0.0)
{
PathGeometry path_geometry = Geometry.Combine(geometry, Geometry.Empty, GeometryCombineMode.Exclude, null);
if(FillRule == SvgFillRule.Evenodd)
path_geometry.FillRule = System.Windows.Media.FillRule.EvenOdd;
else if(FillRule == SvgFillRule.Nonzero)
path_geometry.FillRule = System.Windows.Media.FillRule.Nonzero;
geometry = path_geometry;
}
GeometryDrawing geometry_drawing = new GeometryDrawing(brush, pen, geometry);
return geometry_drawing;
}