WPF将控件的图像复制到位图

我正在使用第三方控件,我想从控件创建一个位图(放在剪贴板上或保存到png)。

我已经尝试使用RenderBitmapTarget ,但它只会复制控件,因为它在屏幕上呈现(我的网格比屏幕大)。

我的RenderBitmapTarget代码如下所示:

 RenderTargetBitmap rtb = new RenderTargetBitmap((int)control.ActualWidth, (int)control.ActualHeight, 96, 96, PixelFormats.Pbgra32); rtb.Render(control); PngBitmapEncoder png = new PngBitmapEncoder(); png.Frames.Add(BitmapFrame.Create(rtb)); MemoryStream stream = new MemoryStream(); png.Save(stream); Image image = Image.FromStream(stream); 

我已经尝试指定一个更大的尺寸(在RenderTargetBitmap构造函数中,并为控件指定新的宽度/高度,但两者都在较大的canvas上产生了相同的图像。

有什么想法吗?

这是我最终得到的……

  tempWidth = myControl.ActualWidth; tempHeight = myControl.ActualHeight; myControl.Width = double.NaN; myControl.Height = double.NaN; myControl.UpdateLayout(); RenderTargetBitmap rtb = new RenderTargetBitmap((int)myControl.ActualWidth, (int)myControl.ActualHeight, 96, 96, PixelFormats.Pbgra32); rtb.Render(myControl); PngBitmapEncoder pbe = new PngBitmapEncoder(); pbe.Frames.Add(BitmapFrame.Create(rtb)); MemoryStream stream = new MemoryStream(); pbe.Save(stream); image = (System.Drawing.Bitmap)System.Drawing.Image.FromStream(stream); CEGrid.Width = tempWidth; CEGrid.Height = tempHeight;