我必须将我的FrameworkElement保存为非常大的光栅图像。现在我以这种方式使用RenderTargetBitmap类和BitmapEncoder:
RenderTargetBitmap bmp = new RenderTargetBitmap(ElementWidth, ElementHeight,
90, 96, PixelFormats.Default);
bmp.Render(MyElement); // OutOfMemoryException here
PngBitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bmp));
using (var stream = File.Create(filePath))
{ encoder.Save(stream); }
其中 ElementWidth 和 ElementHeight 是大数字(大约 10000x6000)。但是使用此解决方案时,当我尝试渲染我的元素时会出现 OutOfMemoryException。
还有其他方法可以满足我的需要(不会导致 OutOfMemoryException)?谢谢。