C#WinForm应用程序中嵌入ECharts图表

C#WinForm应用程序中嵌入ECharts图表

程序运行效果:

下载ECharts:

官网下载ECharts :http://echarts.baidu.com/download.htmljavascript

或者直接在这里下载:源码版echarts.js  、完整版 echarts.min.js   下载地址html

引入 ECharts

ECharts 3 开始再也不强制使用 AMD 的方式按需引入,代码里也再也不内置 AMD 加载器。所以引入方式简单了不少,只须要像普通的 JavaScript 库同样用 script 标签引入。java

1 <!DOCTYPE html>
2 <html>
3 <head>
4     <meta charset="utf-8">
5     <!-- 引入 ECharts 文件 -->
6     <script src="echarts.min.js"></script>
7 </head>
8 </html>

绘制一个简单的图表

在绘图前咱们须要为 ECharts 准备一个具有高宽的 DOM 容器。web

1 <body>
2     <!-- 为 ECharts 准备一个具有大小(宽高)的 DOM -->
3     <div id="main" style="width: 600px;height:400px;"></div>
4 </body>

而后就能够经过 echarts.init 方法初始化一个 echarts 实例并经过 setOption 方法生成一个简单的柱状图,下面是完整代码。echarts

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8">
 5     <title>ECharts</title>
 6     <!-- 引入 echarts.js -->
 7     <script src="echarts.js"></script>
 8 </head>
 9 <body>
10     <!-- 为ECharts准备一个具有大小(宽高)的Dom -->
11     <div id="main" style="width: 600px;height:400px;"></div>
12     <script type="text/javascript">
13         // 基于准备好的dom,初始化echarts实例
14         var myChart = echarts.init(document.getElementById('main')); 15 
16         // 指定图表的配置项和数据
17         var option = { 18  title: { 19  text: 'ECharts 入门示例'
20  }, 21  tooltip: {}, 22  legend: { 23  data:['销量'] 24  }, 25  xAxis: { 26  data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"] 27  }, 28  yAxis: {}, 29  series: [{ 30  name: '销量', 31  type: 'bar', 32  data: [5, 20, 36, 10, 10, 20] 33  }] 34  }; 35 
36         // 使用刚指定的配置项和数据显示图表。
37  myChart.setOption(option); 38     </script>
39 </body>
40 </html>

创建WinForm工程项目添加WebBrowser控件并设置属性,再添加一些必要按钮等控件以下图所示

 WebBrowser控件属性设置dom

 1   //防止 WebBrowser 控件打开拖放到其上的文件。
 2             webBrowser1.AllowWebBrowserDrop = false;  3 
 4             //防止 WebBrowser 控件在用户右击它时显示其快捷菜单.
 5             webBrowser1.IsWebBrowserContextMenuEnabled = false;  6 
 7             //以防止 WebBrowser 控件响应快捷键。
 8             webBrowser1.WebBrowserShortcutsEnabled = false;  9 
10             //以防止 WebBrowser 控件显示脚本代码问题的错误信息。 
11             webBrowser1.ScriptErrorsSuppressed = true; 12 
13             //(这个属性比较重要,能够经过这个属性,把WINFROM中的变量,传递到JS中,供内嵌的网页使用;但设置到的类型必须是COM可见的,因此要设置 [System.Runtime.InteropServices.ComVisibleAttribute(true)],由于个人值设置为this,因此这个特性要加载窗体类上)
14             webBrowser1.ObjectForScripting = this;

将设计好的图表加载到WebBrowser控件

1  this.webBrowser1.Url = new Uri(str + "\\"+comboBox1.Text.Trim());

加载列表

1         private void button1_Click(object sender, EventArgs e) 2  { 3  comboBox1.Items.Clear(); 4             this.getAllHtmlFile(); 5         }
 1  /// <summary>
 2         /// 获取html文件  3         /// </summary>
 4         private void getAllHtmlFile()  5  {  6             //获取指定文件夹的全部文件 
 7             string[] paths = Directory.GetFiles(str);  8             foreach (var item in paths)  9  { 10                 //获取文件后缀名 
11                 string extension = Path.GetExtension(item).ToLower(); 12                 if (extension == ".html") 13  { 14  comboBox1.Items.Add(Path.GetFileName(item)); 15  } 16  } 17 
18             if (comboBox1.Items.Count > 0) 19  { 20                 comboBox1.SelectedIndex = 0; 21                 this.webBrowser1.Url = new Uri(str + "\\" + comboBox1.Text.Trim()); 22  } 23         }

刷新程序

1         /// <summary>
2         /// 刷新 3         /// </summary>
4         /// <param name="sender"></param>
5         /// <param name="e"></param>
6         private void button2_Click(object sender, EventArgs e) 7  { 8             this.webBrowser1.Refresh(); 9         }

运行程序

 这里来自官方的例子多添加了几个能够参考,以下所示

index2.html

index3.html

index4.html

index5.html

index6.html

index7.html

 源码工程文件下载 WinformInsertEChartsDemo.zip

相关文章
相关标签/搜索