Создание и сохранение графиков ZedGraph без отображения на формах - PullRequest
10 голосов
/ 07 июля 2011

Можно ли вывести данные на график ZedGraph и сохранить их в виде файла, не показывая / не создавая график, который виден пользователю? Я хочу обработать много наборов данных и сгенерировать график и сохранить его в файл для просмотра вне приложения.

Если это невозможно, можно ли отобразить график в скрытой / свернутой форме, сохранить график, закрыть окно и повторить для каждого графика?

Ответы [ 2 ]

7 голосов
/ 08 июля 2011

Возможно.

Вы создаете и управляете элементом управления ZedGraph как обычно, но просто не добавляете его в список Form.Controls, например, в методе InitializeComponent() закомментируйте что-то похожее на приведенное ниже

this.Controls.Add(this.zedGraphControl);

Есть несколько способов сохранить график

  • Если вы хотите, чтобы появилось диалоговое окно SaveAs, вызовите SaveAs() в графическом элементе управления.
  • Если вы не хотите, чтобы диалоговое окно, вы можете записать изображение с помощью GetImage() на мастер-панели, а затем сохранить это:

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

5 голосов
/ 12 марта 2012

Вот фрагмент кода для создания и сохранения растровых изображений без какой-либо необходимой инфраструктуры 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.Forms и System.Drawing, чтобы использовать его.

...