private CanvasRenderTarget GetDrawing(bool isedit) { double w, h; //画布大小 if (isedit) //编辑状态 { w = editCanvas.ActualWidth; h = editCanvas.ActualHeight; } else //最终生成图片 有一定的scale { Rect des = GetImageDrawingRect(); w = (editimage.Size.Width / des.Width) * editCanvas.Width; h = (editimage.Size.Height / des.Height) * editCanvas.Height; } var scale = isedit ? 1 : w / editCanvas.Width; //缩放比例 CanvasDevice device = CanvasDevice.GetSharedDevice(); CanvasRenderTarget target = new CanvasRenderTarget(device, (float)w, (float)h, 96); using (CanvasDrawingSession graphics = target.CreateDrawingSession()) { //绘制背景 graphics.Clear(_back_color); //绘制底图 DrawBackImage(graphics, scale); //绘制涂鸦 if (_doodleUIs != null && _doodleUIs.Count > 0) { var list = _doodleUIs.ToList(); list.Reverse(); list.ForEach((d) => { d.Draw(graphics, (float)scale); }); //绘制历史涂鸦 } if (_current_editing_doodleUI != null) { _current_editing_doodleUI.Draw(graphics, (float)scale); //绘制当前涂鸦 } //绘制贴图 if (_wall_paperUI != null) { _wall_paperUI.Draw(graphics, (float)scale); } //水印 if (haveWatermark) { graphics.DrawText(watermark_text, (float)editCanvas.Width / 2 - 2, (float)editCanvas.Height / 2, Colors.Black, new CanvasTextFormat() { FontFamily = "微软雅黑", FontSize = 15 }); } ////绘制Tag //if (_tagsUIs != null) //{ // _tagsUIs.ForEach((t) => { t.Draw(graphics, (float)scale); }); //} //绘制Crop裁剪工具 if (cutmanage != null && isedit) { cutmanage.Draw(graphics, (float)scale); } } return(target); }