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

相關文章
相關標籤/搜索