WPF曲线自定义控件 - CurveHelper
CurveHelper
是一个轻量级、高性能的 WPF 自定义曲线图控件库,提供 CurveControl
控件,支持:
- ✅ 自定义 X/Y 轴标题、范围、刻度
- ✅ 手动设置 X 轴标签(如日期、字符串)
- ✅ 多曲线绘制,支持颜色自定义
- ✅ 数据动态绑定与更新
- ✅ 控件大小自适应,支持拖拽缩放(可选)
使用,搜索 CurveHelper(推荐)
1 右击项目=》点击“管理Nuget程序包”。
dotnet add package CurveHelper
🚀 快速使用:在 WPF 项目中绘制曲线图
1 如何调用参考 创建wpf项目,在MainWindow.cs加入下面的代码
<Window x:Class="WpfApp.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="CurveHelper 示例" Height="600" Width="800"><Grid Name="mainGrid"><!-- CurveControl 将在此处动态添加 --></Grid>
</Window>
using System;
using System.Windows;
using System.Windows.Media;
using CurveHelper; // 确保引用命名空间namespace WpfApp
{public partial class MainWindow : Window{public MainWindow(){InitializeComponent();InitializeCurveControl();}private void InitializeCurveControl(){// 创建曲线控件实例CurveControl curveControl = new CurveControl{AxisConfig = new AxisConfig{XTitle = "日期",YTitle = "温度 (°C)",YMin = 0,YMax = 200,YInterval = 10,XLabelRotation = 45 // 旋转标签防止重叠}};// 生成 50 天的日期作为 X 轴标签string[] dateLabels = new string[50];for (int i = 0; i < 50; i++){dateLabels[i] = DateTime.Now.AddDays(i).ToString("yyyy-MM-dd");}curveControl.AxisConfig.XLabels.AddRange(dateLabels);// 创建一条红色曲线var tempCurve = new CurveData{Color = Brushes.Red,Name = "温度曲线" // 可选:曲线名称};// 生成 Y 值(示例:恒定 120)double[] yValues = new double[50];for (int i = 0; i < 50; i++){yValues[i] = 120;}tempCurve.YValues.AddRange(yValues);// 添加曲线到控件curveControl.AddCurve(tempCurve);// 将控件添加到界面mainGrid.Children.Add(curveControl);}}
}
📸 效果展示
🎨 功能特性
特性 | 说明 |
---|---|
AxisConfig | 配置坐标轴标题、范围、刻度、标签旋转等 |
XLabels | 支持字符串数组作为 X 轴标签(如时间、类别) |
CurveData | 每条曲线可独立设置颜色、名称、数据 |
AddCurve() | 支持添加多条曲线 |
拖拽/缩放 | 可通过扩展支持鼠标拖拽平移、滚轮缩放(需自行实现) |
性能优化 | 适用于中等规模数据(1000点以内)实时绘制 |