LiveCharts2是一个非常实用的图表库,可以用于各种应用场景,例如数据分析、可视化等等。它具有很多优点,例如:
总的来说,LiveCharts2是一个非常实用的图表库,可以满足用户在数据可视化方面的各种需求。它的优点不仅在于简单易用,还在于灵活多样、交互性强和功能强大。
看一下livechart可支持的开发,几乎是MS的所有平台下都可以用到它。
LiveCharts2 的优异性能源自其采用的多项优化技巧,如数据虚拟化、图形缓存、异步绘制等,可在大数据量下保持流畅的响应速度和渲染性能。此外,它还提供了丰富的文档和示例,方便开发者快速入手和使用。
打开 Visual Studio 2022,选择“创建新项目”,然后选择 Windows 窗体应用程序模板。
用Nuget安装LiveChart
这个版本在.net framework下支持,.net 6下不支持
.net 6下需要单独安装
现在最新版本通过Nuget命令安装
https://www.nuget.org/packages/LiveChartsCore.SkiaSharpView.WinForms 下载最新的版本
NuGet\Install-Package LiveChartsCore.SkiaSharpView.WinForms -Version 2.0.0-beta.860
Tools中点击nuget package manager 中 console
C#using LiveChartsCore;
using LiveChartsCore.SkiaSharpView;
using LiveChartsCore.SkiaSharpView.Painting;
using LiveChartsCore.SkiaSharpView.WinForms;
using SkiaSharp;
namespace livechart1
{
public partial class FrmMain : Form
{
public FrmMain()
{
InitializeComponent();
//配制全局中文显示,不然会乱码
LiveCharts.Configure(x =>
{
x.HasGlobalSKTypeface(SKFontManager.Default.MatchCharacter('汉'));
});
}
private void FrmMain_Load(object sender, EventArgs e)
{
cartesianChart1.LegendPosition = LiveChartsCore.Measure.LegendPosition.Right;
cartesianChart1.Series = new ISeries[]
{
new LineSeries<double>
{
Name="成长",
Values= new double[]
{
1,2,3,4,5,6,7
},
Fill =new SolidColorPaint()
{
IsFill=true,
Color=SkiaSharp.SKColor.Parse("#ff0000")
},
},
};
}
}
}
MVVM绑定
CommunityToolkit.Mvvm.ComponentModel .NET 社区工具包的主要组件之一是 MVVM 工具包:一个现代、快速、平台无关的模块化 MVVM 库,也是 Microsoft Store、照片等应用使用的 MVVM 库。
ViewModel.cs
C#using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CommunityToolkit.Mvvm.ComponentModel;
using LiveChartsCore;
using LiveChartsCore.SkiaSharpView;
using LiveChartsCore.SkiaSharpView.Painting;
using SkiaSharp;
namespace livechart1
{
public class ViewModel : ObservableObject
{
public ISeries[] series { get; set; } =
{
new LineSeries<double>
{
Name="成长",
Values= new double[]
{
1,2,3,4,5,6,7
},
Fill =new SolidColorPaint()
{
IsFill=true,
Color=SkiaSharp.SKColor.Parse("#ff0000")
},
}
};
}
}
修改Form代码
C#using LiveChartsCore;
using LiveChartsCore.SkiaSharpView;
using LiveChartsCore.SkiaSharpView.Painting;
using LiveChartsCore.SkiaSharpView.WinForms;
using SkiaSharp;
namespace livechart1
{
public partial class FrmMain : Form
{
ViewModel viewModel = new ViewModel();
public FrmMain()
{
InitializeComponent();
//配制全局中文显示,不然会乱码
LiveCharts.Configure(x =>
{
x.HasGlobalSKTypeface(SKFontManager.Default.MatchCharacter('汉'));
});
}
private void FrmMain_Load(object sender, EventArgs e)
{
cartesianChart1.LegendPosition = LiveChartsCore.Measure.LegendPosition.Right;
cartesianChart1.Series = viewModel.series;
System.Timers.Timer timer = new System.Timers.Timer();
timer.Interval = 2000;
timer.Elapsed += Timer_Elapsed;
timer.Start();
}
private void Timer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e)
{
List<double> points = viewModel.series[0].Values.Cast<double>().ToList();
Random random = new Random();
for (int i = 0; i < points.Count; i++)
{
points[i] = random.Next(2, 33);
}
viewModel.series[0].Values=points;
}
}
}
本文作者:技术老小子
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!