当前位置: 首页 > news >正文

WPF中使用Echarts显示图表

在WPF中使用ECharts来显示图表,你需要将ECharts嵌入到WPF应用程序中。我们这里介绍两种方法显示图表:

目录

一、ECharts是一个基于JavaScript的开源可视化图表库,因此我们需要使用WebView控件来承载一个嵌入式浏览器,这样就可以在WPF应用程序中显示HTML和JavaScript内容。

1. 安装必要的库

2. 创建HTML文件并加载ECharts

HTML文件(chart.html):

3. 在WPF中使用WebView2加载HTML

XAML部分

代码隐藏部分(MainWindow.xaml.cs)

4. 运行程序

5.注意事项

二、在 WPF 项目中引入 ECharts 的 .NET 封装库 ECharts.Net.Wpf后,在 WPF 页面的 XAML 中添加 ECharts 控件, WPF 页面的代码后台初始化 ECharts 控件并设置相关选项。

1.首先,通过 NuGet 安装 ECharts.Net.Wpf 包。

2.然后,在 XAML 中添加 ECharts 控件

3.在后台代码中设置 ECharts 的选项


一、ECharts是一个基于JavaScript的开源可视化图表库,因此我们需要使用WebView控件来承载一个嵌入式浏览器,这样就可以在WPF应用程序中显示HTML和JavaScript内容。

1. 安装必要的库

你可以使用WebView2控件,它是Microsoft Edge的嵌入式浏览器控件。WebView2是一个现代的浏览器控件,支持最新的Web标准和JavaScript。

首先,你需要在你的WPF项目中安装Microsoft.Web.WebView2。使用NuGet包管理器安装:

Install-Package Microsoft.Web.WebView2

 

2. 创建HTML文件并加载ECharts

接下来,我们创建一个HTML文件来加载ECharts库。可以直接在WPF应用程序中嵌入这个HTML文件或者加载外部HTML文件。

HTML文件(chart.html):
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>ECharts in WPF</title><!-- 引入ECharts库 --><script src="https://cdn.jsdelivr.net/npm/echarts@5.4.3/dist/echarts.min.js"></script><style>/* 设置图表的样式 */#chart-container {width: 100%;height: 100%;}</style>
</head>
<body><div id="chart-container"></div><script>// 基于准备好的DOM,初始化echarts实例var myChart = echarts.init(document.getElementById('chart-container'));// 指定图表的配置项和数据var option = {title: {text: 'ECharts 示例'},tooltip: {},xAxis: {data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']},yAxis: {},series: [{name: '销量',type: 'bar',data: [5, 20, 36, 10, 10, 20]}]};// 使用刚指定的配置项和数据显示图表myChart.setOption(option);</script>
</body>
</html>

3. 在WPF中使用WebView2加载HTML

在你的WPF项目中,使用WebView2控件加载并显示HTML文件。

XAML部分

在你的XAML文件中,添加WebView2控件:

<Window x:Class="EChartsInWPF.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"mc:Ignorable="d"Title="ECharts in WPF" Height="450" Width="800"><Grid><WebView2 Name="webView" Source="chart.html"/></Grid>
</Window>

代码隐藏部分(MainWindow.xaml.cs

MainWindow.xaml.cs中,你需要初始化WebView2控件,并加载HTML文件。假设HTML文件位于应用程序的输出目录下。

using Microsoft.Web.WebView2.Core;
using System;
using System.IO;
using System.Windows;namespace EChartsInWPF
{public partial class MainWindow : Window{public MainWindow(){InitializeComponent();// 初始化WebView2InitializeWebView();}private async void InitializeWebView(){// 确保WebView2环境已初始化await webView.EnsureCoreWebView2Async();// 加载本地HTML文件string htmlFilePath = Path.Combine(Directory.GetCurrentDirectory(), "chart.html");webView.Source = new Uri(htmlFilePath);}}
}

 

4. 运行程序

确保你的chart.html文件位于项目的输出目录(通常是bin\Debug\net5.0-windowsbin\Debug\netcoreapp3.1等)下,然后运行程序。WebView2将加载HTML文件并显示ECharts图表。

5.注意事项

  • 确保你已经安装了Microsoft Edge WebView2运行时,它是WebView2控件正常工作的前提。
  • 如果要动态生成或更新图表数据,可以使用JavaScript交互来更新图表的数据和样式。
  • 你可以通过在C#代码中向WebView2控件注入JavaScript来控制图表的更新和交互。

二、在 WPF 项目中引入 ECharts 的 .NET 封装库 ECharts.Net.Wpf后,在 WPF 页面的 XAML 中添加 ECharts 控件, WPF 页面的代码后台初始化 ECharts 控件并设置相关选项。

1.首先,通过 NuGet 安装 ECharts.Net.Wpf 包。

2.然后,在 XAML 中添加 ECharts 控件:

<Window x:Class="WpfEChartsExample.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:ec="clr-namespace:ECharts.Net.Wpf;assembly=ECharts.Net.Wpf"Title="MainWindow" Height="350" Width="525"><Grid><ec:ChartingArea x:Name="chart" Margin="10"/></Grid>
</Window>

3.在后台代码中设置 ECharts 的选项:

using System.Windows;
using ECharts.Net.Common;
using ECharts.Net.Common.Model;
using ECharts.Net.Wpf;namespace WpfEChartsExample
{public partial class MainWindow : Window{public MainWindow(){InitializeComponent();InitializeChart();}private void InitializeChart(){var option = new GlobalOptions{Title = new Title{Text = "ECharts in WPF Example"},Tooltip = new Tooltip{Trigger = TriggerType.Axis},XAxis = new XAxis{Data = new object[] { "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" }},YAxis = new YAxis(),Series = new object[]{new Series{Name = "Sales",Type = SeriesType.Bar,Data = new object[] { 10, 52, 200, 334, 390, 330, 220 }}}};chart.SetGlobalOptions(option);}}
}
以上代码创建了一个基本的柱状图,展示了如何在 WPF 应用程序中集成 ECharts。记得需要先通过 NuGet 安装 ECharts.Net.Wpf 包。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • zeppline如何配置用户登陆
  • Python使用zdppy_mysql操作MySQL和MariaDB数据库快速入门教程
  • PE文件结构详解(非常详细)
  • 【Leetcode:2024. 考试的最大困扰度 + 滑动窗口】
  • [易聊]软件项目测试报告
  • Java 面向对象编程的四个基本原则(封装、继承、多态和抽象),并给出一个简单的例子说明如何在 Java 中应用这些原则?
  • Postman中参数填写方式
  • FaceFormer嘴形同步论文复现
  • Web开发
  • 使用Python+docx+jieba+wordcloud给word文档生成词云图
  • Java18 设计模式
  • vue2.0+ts中默认demo组件
  • ubuntu 安装opencv(3.4.16)
  • 【C++二分查找 贪心】1552. 两球之间的磁力
  • C语言 | Leetcode C语言题解之第384题打乱数组
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • Promise面试题,控制异步流程
  • python 学习笔记 - Queue Pipes,进程间通讯
  • Vue官网教程学习过程中值得记录的一些事情
  • 多线程事务回滚
  • 工程优化暨babel升级小记
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 警报:线上事故之CountDownLatch的威力
  • 使用 @font-face
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 因为阿里,他们成了“杭漂”
  • 优化 Vue 项目编译文件大小
  • Android开发者必备:推荐一款助力开发的开源APP
  • elasticsearch-head插件安装
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • ​linux启动进程的方式
  • #QT(QCharts绘制曲线)
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (4)logging(日志模块)
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (多级缓存)缓存同步
  • (接上一篇)前端弄一个变量实现点击次数在前端页面实时更新
  • (每日一问)设计模式:设计模式的原则与分类——如何提升代码质量?
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • (转)人的集合论——移山之道
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET C# 使用GDAL读取FileGDB要素类
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .net mvc部分视图
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)