WPF优秀组件推荐之LiveCharts

博客 动态
0 229
羽尘
羽尘 2022-03-09 10:56:20
悬赏:0 积分 收藏

WPF优秀组件推荐之LiveCharts

LiveCharts是一个比较漂亮的WPF图表控件,在数据变化时还会有动画切换的效果,并且样式也可以控制。

概述

LiveCharts是一个比较漂亮的WPF图表控件,在数据变化时还会有动画切换的效果,并且样式也可以控制。

 

官方网站:Live Charts (lvcharts.net)

开源代码:GitHub - Live-Charts/Live-Charts: Simple, flexible, interactive & powerful charts, maps and gauges for .Net

 

本文代码基于Stylet开发,如果您还不了解Stylet,请参阅:

WPF优秀组件推荐之Stylet(一) - seabluescn - 博客园 (cnblogs.com)

WPF优秀组件推荐之Stylet(二) - seabluescn - 博客园 (cnblogs.com)

 

环境安装

通过Nuget引用下面两个组件;

  

基本使用

本文介绍一个常用的折线图的控件,其它控件请查看官方代码。

Xaml:

                <lvc:CartesianChart >                    <lvc:CartesianChart.Series>                        <lvc:LineSeries Title="Voltage" Values="{Binding VoltageLineSeries}" />                        <lvc:LineSeries Title="Current"  Values="{Binding CurrentLineSeries}"  />                                           </lvc:CartesianChart.Series>                    <!--定义Y轴-->                    <lvc:CartesianChart.AxisY>                                               <lvc:Axis Title="Voltage/Current"></lvc:Axis>                    </lvc:CartesianChart.AxisY>                    <!--定义X轴-->                    <lvc:CartesianChart.AxisX>                                              <lvc:Axis Title="Samples" Labels="{Binding XTimeLabels}"/>                    </lvc:CartesianChart.AxisX>                </lvc:CartesianChart>

 Code:

        #region LiveCharts        public string[] XTimeLabels { get; set; } = new string[] { "0" };        public ChartValues<double> VoltageLineSeries { get; set; }        public ChartValues<double> CurrentLineSeries { get; set; }        public void ReflashDatas()        {            Random random = new Random();            VoltageLineSeries = new ChartValues<double>();            CurrentLineSeries = new ChartValues<double>();            Task.Run(() =>            {                while (true)                {                    VoltageLineSeries.Add(random.Next(200, 300));                    CurrentLineSeries.Add(random.Next(1, 20));                    int Count = VoltageLineSeries.Count;                    if (Count > 0)                    {                        XTimeLabels = new string[Count];                        for (int i = 0; i < Count; i++)                        {                            XTimeLabels[i] = (i + 1).ToString();                        }                    }                    Thread.Sleep(2000);                }            });        }        #endregion
View Code

以上代码下载地址:NiceComponents · Bruce/Learn WPF - 码云 - 开源中国 (gitee.com)

 

参考文档:

WPF绘制图表-LiveCharts - 橘子香气 - 博客园 (cnblogs.com)

WPF LiveChart 图表详解 - 痕迹g - 博客园 (cnblogs.com)

更多资源请参考官方源码。

posted @ 2022-03-09 09:31 seabluescn 阅读(1) 评论(0) 编辑 收藏 举报
回帖
    羽尘

    羽尘 (王者 段位)

    2335 积分 (2)粉丝 (11)源码

     

    温馨提示

    亦奇源码

    最新会员