我有以下问题:
我在Prism的一个观点中有一个情节。我的目标是从我的应用程序生成报告,其中包括生成的OxyPlot图表。我使用以下行将绘图保存到图像:
plot.SaveBitmap(fileName, 960, 540, OxyColor.FromRgb(255, 255, 255));
当我尝试保存位图而不事先在用户界面中看到图表时,会出现问题。在这种情况下,我只得到空白图,白色位图正确的大小,但没有内容。没有轴,没有标题(位图只是空白)。当我使用函数生成XAML而不是Bitmap时,结果是一样的:根本没有内容。
我还注意到,当绘图保存时,绘图的宽度和高度都设置为0。在保存功能之前设置此值不会更改结果文件。
我在保存图片之前尝试过以下代码:
plot.InvalidatePlot();
甚至:
plot.InvalidatePlot();
Action emptyAction = delegate { };
plot.Dispatcher.Invoke(DispatcherPriority.Render, emptyAction);
plot.InvalidatePlot();
当我浏览用户界面时,我可以看到该图:保存功能返回到正确的行为。没有例外,该情节有我的数据在保存之前进行绘制。
请帮助......
答案 0 :(得分:2)
我使用oxyplot时遇到了同样的问题。我试图将图像导出到一个文件,但它只在我首先在屏幕上显示时才起作用。要使其工作,您必须以编程方式定义所有模型,并将模型绑定到XAML。这样您就不必通过视图来正确导出。