WPF 将Canvas导出成图片
时间: 2024-03-21 22:39:24 浏览: 18
您可以使用以下代码将WPF中的Canvas导出为图片:
```csharp
// 创建一个RenderTargetBitmap对象
RenderTargetBitmap renderBitmap = new RenderTargetBitmap((int)canvas.ActualWidth, (int)canvas.ActualHeight, 96d, 96d, PixelFormats.Pbgra32);
// 渲染并呈现canvas
renderBitmap.Render(canvas);
// 创建一个编码器并获取图像的字节数组
PngBitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(renderBitmap));
byte[] imageBytes;
using (MemoryStream ms = new MemoryStream())
{
encoder.Save(ms);
imageBytes = ms.ToArray();
}
// 将字节数组保存为本地文件
string filePath = "canvas.png";
using (FileStream fs = new FileStream(filePath, FileMode.Create))
{
fs.Write(imageBytes, 0, imageBytes.Length);
}
```
其中,canvas为要导出为图片的Canvas对象,filePath为保存的文件路径。这段代码将Canvas渲染为一个RenderTargetBitmap对象,再将其保存为PNG格式的图片文件。