В моем приложении у меня есть диаграмма (WPF Toolkit) в нормальном разрешении / размере (например, 640x480). Я хочу экспортировать эту диаграмму в изображение с разными разрешениями (например, 800x600 или выше).
В настоящее время я использую следующие строки кодов:
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 в векторную графику?