【问题标题】:How to save WPF element as an image in different sizes?如何将 WPF 元素保存为不同大小的图像?
【发布时间】:2012-02-10 09:24:42
【问题描述】:

在我的应用程序中,我有一个正常分辨率/大小(例如 640x480)的图表(WPF 工具包)。我想将此图表导出为不同分辨率的图像(例如 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 元素导出为矢量图形?

【问题讨论】:

    标签: .net wpf silverlight xaml charts


    【解决方案1】:

    我根本没有尝试过,但可以通过增加 DPI(RenderTargetBitmap 的第四和第五个参数)来完成您要求的操作

    【讨论】:

      猜你喜欢
      • 2023-03-21
      • 2011-03-18
      • 2010-12-23
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-21
      • 1970-01-01
      • 2019-12-25
      相关资源
      最近更新 更多