C# OxyPlot WPF在背景中生成图像

C# OxyPlot WPF在背景中生成图像,c#,wpf,oxyplot,C#,Wpf,Oxyplot,我有以下问题: 我的一个棱镜视图中有一个图。我的目标是从我的应用程序生成报告,其中包括生成的OxyPlot图表。我使用以下行将绘图保存到图像: plot.SaveBitmap(fileName, 960, 540, OxyColor.FromRgb(255, 255, 255)); 当我试图保存位图而之前没有在用户界面中看到绘图时,就会出现问题。在这种情况下,我只得到空白图,白色的位图,正确的大小,但没有内容。没有轴,没有标题(位图只是空白)。当我使用函数生成XAML而不是位图时,结果是一样的

我有以下问题:

我的一个棱镜视图中有一个图。我的目标是从我的应用程序生成报告,其中包括生成的OxyPlot图表。我使用以下行将绘图保存到图像:

plot.SaveBitmap(fileName, 960, 540, OxyColor.FromRgb(255, 255, 255));
当我试图保存位图而之前没有在用户界面中看到绘图时,就会出现问题。在这种情况下,我只得到空白图,白色的位图,正确的大小,但没有内容。没有轴,没有标题(位图只是空白)。当我使用函数生成XAML而不是位图时,结果是一样的:根本没有内容

我还注意到,在保存绘图时,绘图的宽度和高度都设置为0。在保存函数之前设置此值不会更改结果文件

在保存图像之前,我尝试了以下代码:

plot.InvalidatePlot();
甚至:

plot.InvalidatePlot();

Action emptyAction = delegate { };
plot.Dispatcher.Invoke(DispatcherPriority.Render, emptyAction);

plot.InvalidatePlot();
当我浏览用户界面时,我可以看到绘图:save函数返回到正确的行为。没有例外,在保存之前,绘图中有我的数据要绘图


请帮帮我…

我在使用oxyplot时遇到了同样的问题。我试图将图像导出到一个文件中,但只有当我第一次在屏幕上显示它时,它才起作用。要使其工作,您必须以编程方式定义所有模型,并将模型绑定到XAML。这样,您就不必通过视图才能正确导出

绘图的代码完全在XAML上,或者是通过编程生成的?它完全在XAML上,但在我编写时,在尝试SaveImage()函数时,所有数据都已附加到绘图上。使用oxyplot时,我也遇到了同样的问题。我试图将图像导出到一个文件中,但只有当我第一次在屏幕上显示它时,它才起作用。要使其工作,您必须以编程方式定义所有模型,并将模型绑定到xaml。这样您就不必通过视图来正确导出。非常感谢您的有用回答。我决定重新设计我的应用程序,以便使用FlowDocument创建报告文档。在它里面,当我可以注入我的图表控件时,我可以制作额外的棱镜区域。它将比使用预生成的位图工作得更好。如果可以,请写下你的评论作为回答,这样我就可以接受了。