生成并保存ZedGraph图而不在表单上显示

时间:2011-07-07 17:41:36

标签: c# graph zedgraph

是否可以将数据绘制到ZedGraph图表并将其保存为文件而不显示/生成用户可见的图表?我正在寻找处理大量数据集并生成图表并将其保存到文件中以便在应用程序之外查看。

如果无法做到这一点,是否可以在隐藏/最小化表格上显示图表,保存图表,关闭窗口,并为每个图表重复一次?

2 个答案:

答案 0 :(得分:7)

有可能。

您像往常一样创建和操作ZedGraph控件,但只是不要将其添加到Form.Controls列表中,例如,在InitializeComponent()方法中,注释掉类似下面的内容< / p>

this.Controls.Add(this.zedGraphControl);

有两种方法可以保存图表

  • 如果您想要显示SaveAs对话框,请在图表控件上调用SaveAs()
  • 如果您不想要对话框,可以使用MasterPane上的GetImage()写出图像,然后保存:

    zedGraphControl.MasterPane.GetImage()保存( “TEST.BMP”);

答案 1 :(得分:5)

这是一个代码片段,用于创建和保存位图,而不需要任何WinForms基础结构:

var zedGraph = new ZedGraphControl();

// configure ZedGraphControl here

using (var g = zedGraph.CreateGraphics())
{
    zedGraph.MasterPane.ReSize(g, new RectangleF(0, 0, widthPx, heightPx));
}
zedGraph.MasterPane.GetImage().Save(Path.Combine(destinationDir, "test.bmp"));

这甚至可以在没有任何桌面的情况下作为服务运行。唯一的缺点是您需要引用System.Windows.FormsSystem.Drawing来使用它。