private static Drawing SimplifyGlyphRunDrawing(GlyphRunDrawing glyphRunDrawing) { if (glyphRunDrawing.ForegroundBrush == null || glyphRunDrawing.GlyphRun == null) { return((Drawing)null); } System.Windows.Media.Geometry geometry = glyphRunDrawing.GlyphRun.BuildGeometry(); if (geometry == null || geometry.IsEmpty()) { return((Drawing)null); } return(MakeDrawingBrushCommand.SimplifyGeometryDrawing(new GeometryDrawing(glyphRunDrawing.ForegroundBrush, (Pen)null, geometry))); }
private static Drawing SimplifyDrawing(Drawing drawing, string projectPath) { if (drawing != null) { if (drawing.IsFrozen) { drawing = drawing.Clone(); } DrawingGroup drawingGroup; if ((drawingGroup = drawing as DrawingGroup) != null) { drawing = MakeDrawingBrushCommand.SimplifyDrawingGroup(drawingGroup, projectPath); } else { GeometryDrawing geometryDrawing; if ((geometryDrawing = drawing as GeometryDrawing) != null) { drawing = MakeDrawingBrushCommand.SimplifyGeometryDrawing(geometryDrawing); } else { GlyphRunDrawing glyphRunDrawing; if ((glyphRunDrawing = drawing as GlyphRunDrawing) != null) { drawing = MakeDrawingBrushCommand.SimplifyGlyphRunDrawing(glyphRunDrawing); } else { ImageDrawing imageDrawing; if ((imageDrawing = drawing as ImageDrawing) != null) { drawing = MakeDrawingBrushCommand.SimplifyImageDrawing(imageDrawing, projectPath); } else { VideoDrawing videoDrawing; if ((videoDrawing = drawing as VideoDrawing) != null) { drawing = MakeDrawingBrushCommand.SimplifyVideoDrawing(videoDrawing); } } } } } } return(drawing); }