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); }
private void AddImageDrawing(ConvertibleDrawing.DrawingStackEntry entry) { ImageDrawing imageDrawing = entry.Drawing as ImageDrawing; if (this.projectPath != null) { imageDrawing = (ImageDrawing)MakeDrawingBrushCommand.SimplifyImageDrawing(imageDrawing, this.projectPath); } Image image = new Image(); ConvertibleDrawing.SetValueIfNotDefault(FrameworkElement.HeightProperty, (DependencyObject)image, (object)imageDrawing.Bounds.Height); ConvertibleDrawing.SetValueIfNotDefault(FrameworkElement.WidthProperty, (DependencyObject)image, (object)imageDrawing.Bounds.Width); ConvertibleDrawing.SetValueIfNotDefault(Image.SourceProperty, (DependencyObject)image, (object)imageDrawing.ImageSource); ConvertibleDrawing.SetPositionInCanvas((UIElement)image, entry.Offset); if (entry.Transform != Transform.Identity) { ConvertibleDrawing.SetValueIfNotDefault(UIElement.RenderTransformProperty, (DependencyObject)image, (object)entry.Transform); } entry.Canvas.Children.Add((UIElement)image); }