编辑
2025-09-25
C#
00

目录

环境设置
视图模型的构建
WinForms 控件集成
结论

在本文中,我们将探讨如何在 .NET 应用程序中使用 LiveCharts 2,这是一个功能强大且多功能的图表库,来实现一个角度仪表盘。提供的示例展示了如何在 WinForms 应用程序中集成和配置角度仪表盘,以及如何通过视图模型来动态更新数据。

环境设置

.net 6下需要单独安装

现在最新版本通过Nuget命令安装

https://www.nuget.org/packages/LiveChartsCore.SkiaSharpView.WinForms 下载最新的版本

C#
NuGet\Install-Package LiveChartsCore.SkiaSharpView.WinForms -Version 2.0.0-rc2

视图模型的构建

角度仪表盘的数据逻辑是通过一个视图模型来管理的。以下是视图模型的基本结构:

C#
public partial class ViewGaugeModel : ObservableObject { // 随机数生成器,用于产生随机的仪表读数。 private readonly Random _random = new Random(); public ViewGaugeModel() { // 设置仪表的外圈和宽度参数 var sectionsOuter = 130; var sectionsWidth = 20; // 初始化针的视觉表示和初始值 Needle = new NeedleVisual { Value = 45, Fill= new SolidColorPaint(SKColors.Blue,1)}; // 构建仪表的分段,每个分段通过一个委托配置其样式 Series = GaugeGenerator.BuildAngularGaugeSections( new GaugeItem(60, s => SetStyle(sectionsOuter, sectionsWidth, s)), new GaugeItem(30, s => SetStyle(sectionsOuter, sectionsWidth, s)), new GaugeItem(10, s => SetStyle(sectionsOuter, sectionsWidth, s)) ); // 配置仪表的视觉元素,如刻度和针 VisualElements = new VisualElement<SkiaSharpDrawingContext>[] { new AngularTicksVisual { LabelsSize = 16, LabelsOuterOffset = 15, OuterOffset = 65, TicksLength = 20 }, Needle }; } // 仪表的数据系列 public IEnumerable<ISeries> Series { get; set; } // 仪表的视觉元素集合 public IEnumerable<VisualElement<SkiaSharpDrawingContext>> VisualElements { get; set; } // 仪表的指针视觉表示 public NeedleVisual Needle { get; set; } // 命令,用于产生针的随机移动 [RelayCommand] public void DoRandomChange() { // 设置针的值为0到100之间的随机数 Needle.Value = _random.Next(0, 100); } // 配置饼图系列的样式,设置外半径偏移和最大径向列宽 private static void SetStyle(double sectionsOuter, double sectionsWidth, PieSeries<ObservableValue> series) { series.OuterRadiusOffset = sectionsOuter; series.MaxRadialColumnWidth = sectionsWidth; } }

WinForms 控件集成

在 WinForms 应用程序中,我们创建一个用户控件来承载角度仪表盘:

C#
private readonly PieChart pieChart; public Form2() { InitializeComponent(); var viewGaugeModel = new ViewGaugeModel(); pieChart = new PieChart { Series = viewGaugeModel.Series, VisualElements = viewGaugeModel.VisualElements, InitialRotation = -225, MaxAngle = 270, MinValue = 0, MaxValue = 100, Dock = DockStyle.Fill, }; Controls.Add(pieChart); Task.Run(async () => { while (true) { viewGaugeModel.DoRandomChange(); await Task.Delay(2000); } }); }

image.png

结论

通过上述示例,我们可以看到如何在 WinForms 应用程序中实现和配置一个动态的角度仪表盘。LiveCharts 2 提供的工具和组件使得创建复杂的图表变得简单和直观。希望这个示例能帮助你在自己的项目中实现类似的功能。

本文作者:技术老小子

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!