none
WPF 怎么把一个未呈现的Canvas转化为图片?? RRS feed

  • 问题

  • RenderTargetBitmap rtb = new RenderTargetBitmap((int)InkCanvas.ActualWidth, (int)InkCanvas.ActualHeight, 0, 0, PixelFormats.Default);
    rtb.Render(InkCanvas);
    BmpBitmapEncoder encoder = new BmpBitmapEncoder();
    encoder.Frames.Add(BitmapFrame.Create(rtb));                   
    BitmapSource bitmapSource = encoder.Frames[0];

    使用上面方法转换成图片只能转换呈现视图的,在后台创建的Canvas未呈现视图的就不能转换???怎么解决这个问题???
    2014年11月12日 3:31

答案

  • 你的这个InkCanvas.ActualWidth看下是不是0啊,应该是不在视觉树上吧,所以UpdateLayout()没用。

    那用InkCanvas.Measure(new Size(宽,高));  InkCanvas.Arrange(new Rect(0,0,宽,高));这个应该妥了。

    • 已标记为答案 heller灬 2014年11月13日 9:43
    2014年11月13日 3:40

全部回复