【发布时间】:2022-12-10 10:58:33
【问题描述】:
我目前正在开发一个 WPF 应用程序,该应用程序使用名为 Live Charts for WPF 的绘图库。我想保存我的图形的 PNG,这在他们的 github 页面 Save Plot Example 上有描述,也在这个 stackoverflow 问题 here 上讨论过。问题是添加对 Windows 基础程序集的引用。
`
private void SaveToPng(FrameworkElement visual, string filename)
{
var encoder = new PngBitmapEncoder();
EncodeVisual(visual, filename, encoder);
}
private static void EncodeVisual(FrameworkElement visual, string fileName, BitmapEncoder encoder)
{
var bitmap = new RenderTargetBitmap((int)visual.ActualWidth, (int)visual.ActualHeight, 96, 96, PixelFormats.Pbgra32);
//bitmap.Render();
bitmap.Render(visual);
var frame = BitmapFrame.Create(bitmap);
encoder.Frames.Add(frame);
using (var stream = File.Create(fileName)) encoder.Save(stream);
}
`
我试图将此 dll 添加为位于 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.0 的参考,但是当我这样做时它不起作用。它实际上隐式包含在项目中,所以这可能就是为什么我可以像对 PresentationCore.dll 和 PresentationFramework.dll 那样显式添加它,这也是必需的并解决了一些错误。错误状态:“System.Windows.Freezable”类型在未引用的程序集中定义。您必须添加对程序集“WindowsBase,Version=3.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”的引用。这是通过将鼠标悬停在对 bitmap.Render(visual) 的调用上以及将鼠标悬停在 encoder.Save(stream) 上显示的,如图片和上面的代码所示。我相信解决这种依赖关系会解决问题,但我不知道如何解决。谢谢你。 Picture of Project
【问题讨论】:
标签: wpf livecharts