2
在我的应用程序中,我有一个正常分辨率/大小(例如640x480)的图表(WPF Toolkit)。我想将此图表导出为不同分辨率的图像(例如800x600或更高)。如何将WPF元素保存为不同大小的图像?
目前,我使用的代码的这些行:
var path = String.Format(@"C:\Temp\chart-{0}.bmp", DateTime.Now.Ticks);
var renderBitmap = new RenderTargetBitmap((int)xamChart.ActualWidth,
(int)xamChart.ActualHeight,
96d,
96d,
PixelFormats.Pbgra32);
renderBitmap.Render(xamChart);
// Create a file stream for saving image
using (var outStream = new FileStream(path, FileMode.Create))
{
// Use png encoder for our data
var encoder = new BmpBitmapEncoder();
// push the rendered bitmap to it
encoder.Frames.Add(BitmapFrame.Create(renderBitmap));
// save the data to the stream
encoder.Save(outStream);
}
它工作得很好,但是如果我想在更高的分辨率保存,我需要改变图表的大小。这些尺寸的变化在我的表单上可见,不可接受。有没有办法保持元素的原始大小,并保存为不同大小的图像?
PS。我不想将图表保存为原始尺寸的图像,然后更改图像尺寸,因为我失去了图像质量。
PPS。第二种解决方案:也许有人知道如何将WPF元素导出为矢量图形?
它的作品:)谢谢 – SeRgI 2012-02-10 14:11:59