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

本文关键字:显示 表单 保存 ZedGraph | 更新日期: 2023-09-27 18:01:24

是否有可能将数据绘制到ZedGraph图形并将其保存为文件,而不显示/生成对用户可见的图形?我希望处理大量的数据集,并生成一个图形,并将其保存到一个文件,以便在应用程序外查看。

如果不能这样做,是否有可能以隐藏/最小化的形式显示图形,保存图形,关闭窗口,并对每个图形重复?

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

这是可能的。

您像往常一样创建和操作ZedGraph控件,但只是不将其添加到Form.Controls列表中,例如,在InitializeComponent()方法中,注释掉如下所示的

this.Controls.Add(this.zedGraphControl);

有几种保存图形的方法

  • 如果你想显示一个保存对话框,在图形控件上调用SaveAs()
  • 如果你不想要这个对话框,你可以在母版面板上使用GetImage()将图像写出来,然后保存:

    zedGraphControl.MasterPane.GetImage () .Save("test.bmp");

下面是创建和保存位图的代码片段,而不需要任何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来使用它。