Visifire中图表的导出

 

 1         public Form1()
2 {
3 InitializeComponent();
4 CreateChar1();
5 }
6
7 /// 创建一个数据图表
8 private void CreateChar1()
9 {
10 Visifire.Charts.Chart _chart = new Visifire.Charts.Chart();
11 Title title = new Title();
12 title.Text = "图表标题";
13 _chart.Titles.Add(title);
14
15 Visifire.Charts.Axis charAxisX = new Visifire.Charts.Axis();
16 charAxisX.Title = "图表X轴";
17 _chart.AxesX.Add(charAxisX);
18 Visifire.Charts.Axis charAxisY = new Visifire.Charts.Axis();
19 charAxisY.Title = "图表Y轴";
20 _chart.AxesY.Add(charAxisY);
21
22 _chart.View3D = true;
23 Random rnd = new Random();
24 DataPoint dataPoint;
25 DataSeries dataSeries = new DataSeries();
26 dataSeries.RenderAs = RenderAs.Column;
27 for (int i = 0; i <= 7; i++)
28 {
29 dataPoint = new DataPoint();
30 dataPoint.AxisXLabel = i + "";
31 dataPoint.YValue = rnd.Next(1, 100);
32 dataSeries.DataPoints.Add(dataPoint);
33 }
34 _chart.Series.Add(dataSeries);
35 elementHost1.Child = _chart;
36 }
37
38 //得到位图
39 private System.Drawing.Bitmap GetBitmap()
40 {
41 System.Drawing.Point point = elementHost1.PointToScreen(new System.Drawing.Point(0, 0));//得elementHost1左上点源坐标
42 System.Drawing.Bitmap bitmap = new Bitmap(elementHost1.Width, elementHost1.Height); //位图的大小
43 System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap); //制图
44 System.Drawing.Size size = new System.Drawing.Size(elementHost1.Width, elementHost1.Height);//要传输区域的大小
45 g.CopyFromScreen(point.X, point.Y, 0, 0, size); //源矩形左上角的点、目标矩形左上角的点
46 return bitmap;
47 }
48
49 //导出图片
50 private void ExportChartImage()
51 {
52 Microsoft.Win32.SaveFileDialog sfd = new Microsoft.Win32.SaveFileDialog();//保存对话框
53 sfd.Title = "导出Exel和图片"; //对话框标题
54 sfd.OverwritePrompt = true; //如果文件已经存在,显示警告
55 sfd.Filter = "Exel和图片|*.xlsx";
56 if (sfd.ShowDialog() == true) //显示对话框
57 {
58 string filename = sfd.FileName;
59 if (filename != null)
60 {
61 try
62 {
63 string bitfilename = System.IO.Path.GetDirectoryName(filename) + "\\" + System.IO.Path.GetFileNameWithoutExtension(
                                                filename) + ".jpg";
64 GetBitmap().Save(bitfilename, System.Drawing.Imaging.ImageFormat.Jpeg);//以Jpeg格式保存位图
65 MessageBox.Show("导出成功!");
66 }
67 catch
68 {
69 MessageBox.Show("导出失败!");
70 }
71 }
72 }
73 }
74 private void button1_Click(object sender, EventArgs e)
75 {
76 ExportChartImage();
77 }

posted @ 2011-12-23 13:21  蓝月天南  阅读(917)  评论(0编辑  收藏  举报