2012-02-10 47 views
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元素导出为矢量图形?

回答

1

我还没有尝试过的一切,但它可能是可能做到你的要求通过增加DPI(第四和第五个参数RenderTargetBitmap

+0

它的作品:)谢谢 – SeRgI 2012-02-10 14:11:59

相关问题