我已动态创建图表,但我想保存在图片列表或任何其他类型的列表中创建的图表,只要不在文件夹中。
问题:如何保存图像列表/其他类型列表中创建的图表?
这是我的代码:
Chart Chart1 = new Chart();
Chart1.DataSource = dt;
Chart1.Width = 800;
Chart1.Height = 500;
Chart1.Series.Add(new Series());
Chart1.Series[0].ChartType = SeriesChartType.BoxPlot;
List<object> List_CHART = dt.AsEnumerable().ToList<object>();
foreach (DataRow row in dt.Rows)
{
Chart1.Series[0].Points.AddXY(row["TITLE"], new object[] { row["MIN"], row["MAX"], row["25TH_PERCENTILE"], row["75TH_PERCENTILE"], row["50TH_PERCENTILE"], row["AVG"] });
}
//create chartareas
ChartArea ca= new ChartArea();
ca.AxisX = new Axis();
ca.AxisY = new Axis();
Chart1.ChartAreas.Add(ca);
//databind
Chart1.DataBind();
Chart1.Visible = true;
panel.Controls.Add(Chart1);
感谢。
答案 0 :(得分:0)
最终的解决方案应该是这样的:
var chartImages = new ImageList();
var chartStream = new MemoryStream()
chart.SaveImage(chartStream, ChartImageFormat.Png);
var chartImage = Image.FromStream(chartStream);
chartImages.Add(chartImage);
另外,请注意Image类的备注部分:
您必须在图像的生命周期内保持流打开。