关于 syncfusion-winforms-chart
面向 Windows Forms 开发者的 Syncfusion ChartControl 图表指南,涵盖多种图表类型、数据绑定、交互与导出,可用于业务数据可视化。
主要功能
- 0135 种以上图表类型
- 02绑定多种数据源
- 03多系列与多轴配置
- 04缩放、平移与工具提示
- 05导出 PDF、Office 文档和图像
适用场景
- 01展示销售趋势与对比
- 02可视化金融行情数据
- 03生成统计分析图表
- 04绘制时间序列监控图
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ syncfusion/ winforms-ui-components-skills --skill syncfusion-winforms-chart安装后在 Claude Code 中输入/syncfusion-winforms-chart确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/appearance-styling.mdaxes-configuration.mdchart-area.mdchart-events.mdchart-series.mdchart-title.mdchart-types.mddata-labels-tooltips.mddata-population.mdexporting-printing.mdgetting-started.mdlegend-configuration.mdlocalization.mdperformance-optimization.mdruntime-features.mdstatistical-formulas.mdtroubleshooting.md详细介绍
实现 Syncfusion Windows Forms 图表
Essential Chart for Windows Forms 是一款功能全面的图表控件,支持 35+ 种图表类型,可用于业务应用。它提供丰富的自定义选项、数据绑定、交互功能和导出功能,可创建达到演示品质的图表。
何时使用此技能
在以下情况下使用此技能:
- 在 Windows Forms 应用中创建任意类型的图表
- 使用折线图、面积图、条形图、柱形图、饼图或金融图表可视化数据
- 实现支持缩放、平移或工具提示的交互式图表
- 将图表数据绑定到 DataSet、DataTable 或自定义数据源
- 配置图表坐标轴、图例、标题或外观
- 将图表导出为 PDF、Excel、Word 或图像
- 为图表添加统计分析或公式
- 自定义图表样式和颜色
组件概览
ChartControl 是主要组件,提供:
- **35+ 种图表类型:**面积图、条形图、气泡图、烛台图、柱形图、组合图、漏斗图、甘特图、直方图、折线图、饼图、金字塔图等
- **灵活的数据绑定:**DataSet、DataTable、DataView,以及通过接口绑定自定义模型
- **支持多个系列:**叠加多个不同类型的数据系列
- **高级坐标轴:**主坐标轴/次坐标轴、DateTime 支持、对数刻度、自定义间隔
- **丰富的自定义选项:**皮肤、调色板、字体、渐变、阴影
- **交互功能:**缩放、平移、工具提示、命中测试、运行时修改
- **导出功能:**PDF、Excel、Word、图像,以及支持打印预览的打印功能
- **统计支持:**内置分析公式
文档与导航指南
入门
📄 阅读:references/getting-started.md
- 程序集部署和 NuGet 包
- 向 Windows Forms 添加 ChartControl
- 使用 BindingList 填充基本数据
- 设计时 ChartWizard 配置
- 首个图表示例
图表类型
📄 阅读:references/chart-types.md
- 概览 35+ 种可用图表类型
- 图表类型类别和适用场景
- 各类型对 Y 值的要求
- 通过 Type 属性设置图表类型
- 特定类型的配置
数据填充
📄 阅读:references/data-population.md
- 绑定 DataSet、DataTable、DataView
- ChartDataBindModel 和 CategoryAxisDataBindModel
- 通过 IChartSeriesModel 绑定自定义数据模型
- 大型数据集的性能优化
图表系列
📄 阅读:references/chart-series.md
- 创建并添加 ChartSeries
- 用于数据点的 ChartPoint 类
- 管理 X 值和 Y 值
- 系列样式和自定义选项
- 配置多个系列
坐标轴配置
📄 阅读:references/axes-configuration.md
- 主坐标轴和次坐标轴(PrimaryXAxis、PrimaryYAxis)
- 坐标轴值类型(Double、DateTime、Category、Logarithmic)
- 范围和间隔设置
- 自定义标签格式和位置
- 支持多个坐标轴
图表区域
- 图表区域属性和布局
- 背景、边框、边距
- 内部区域自定义
- 阴影效果
外观和样式
📄 阅读:references/appearance-styling.md
- 内置皮肤(Metro、Office 等)
- 调色板和 CustomPalette
- 渐变和纯色样式
- 字体和文本格式
- 用于高级样式设置的 BrushInfo
图例配置
📄 阅读:references/legend-configuration.md
- 启用图例并设置其位置
- LegendPosition 和 LegendAlignment
- 图表内部与外部的放置位置
- 自定义图例项
- 多个图例
图表标题
📄 阅读:references/chart-title.md
- 添加 ChartTitle 对象
- 标题文本和位置
- 字体和外观自定义
- 支持多个标题
数据标签和工具提示
📄 阅读: references/data-labels-tooltips.md
- 启用数据标签(DisplayText)
- 标签格式和方向
- 工具提示配置(ShowToolTips)
- 通过 PrepareStyle 事件自定义工具提示内容
- 外观自定义
运行时功能
📄 阅读: references/runtime-features.md
- 缩放和平移功能
- 图表区域的命中测试
- 交互式操作
- 动态数据更新
- 运行时修改序列
图表事件
📄 阅读: references/chart-events.md
- ChartControl 和序列事件
- 用于自定义的 PrepareStyle 事件
- 鼠标和交互事件
- 图表区域点击事件
- 事件处理模式
导出和打印
📄 阅读: references/exporting-printing.md
- 导出为 PDF、Excel、Word
- 导出图像(PNG、BMP、JPEG)
- 打印和打印预览
- 多页打印配置
统计公式
📄 阅读: references/statistical-formulas.md
- 内置统计函数
- 均值、标准差、方差
- 分布、T 检验、F 检验、Z 检验
- 将公式应用于序列数据
性能优化
📄 阅读: references/performance-optimization.md
- 大型数据集处理策略
- 数据绑定性能
- 渲染优化
- 内存管理最佳实践
本地化
📄 阅读: references/localization.md
- 本地化图表文本和标签
- 特定区域设置的格式
- 资源文件配置
- 日期和数字格式
故障排除
📄 阅读: references/troubleshooting.md
- 常见问题和解决方案
- 数据显示问题
- 性能问题
- 设计时配置问题
快速入门示例
using Syncfusion.Windows.Forms.Chart;
using System.ComponentModel;
// Create a simple data model
public class SalesData
{
public string Year { get; set; }
public double Sales { get; set; }
public SalesData(string year, double sales)
{
this.Year = year;
this.Sales = sales;
}
}
// Populate data
BindingList<SalesData> dataSource = new BindingList<SalesData>();
dataSource.Add(new SalesData("2020", 30));
dataSource.Add(new SalesData("2021", 45));
dataSource.Add(new SalesData("2022", 60));
dataSource.Add(new SalesData("2023", 75));
// Create data model for binding
CategoryAxisDataBindModel dataModel = new CategoryAxisDataBindModel(dataSource);
dataModel.CategoryName = "Year";
dataModel.YNames = new string[] { "Sales" };
// Create and configure series
ChartSeries series = new ChartSeries("Sales");
series.Type = ChartSeriesType.Column;
series.CategoryModel = dataModel;
series.Style.DisplayText = true;
// Configure chart
chartControl1.PrimaryXAxis.ValueType = ChartValueType.Category;
chartControl1.Series.Add(series);
chartControl1.Skins = Skins.Metro;
// Add title
ChartTitle title = new ChartTitle();
title.Text = "Sales Performance";
chartControl1.Titles.Add(title);
// Configure legend
chartControl1.Legend.Visible = true;
chartControl1.LegendAlignment = ChartAlignment.Center;
chartControl1.Legend.Position = ChartDock.Bottom;
常见模式
模式 1:多个不同类型的序列
// Sales as columns
ChartSeries salesSeries = new ChartSeries("Sales");
salesSeries.Type = ChartSeriesType.Column;
salesSeries.Points.Add(1, 100);
salesSeries.Points.Add(2, 150);
salesSeries.Points.Add(3, 120);
// Target as line
ChartSeries targetSeries = new ChartSeries("Target");
targetSeries.Type = ChartSeriesType.Line;
targetSeries.Points.Add(1, 110);
targetSeries.Points.Add(2, 130);
targetSeries.Points.Add(3, 140);
chartControl1.Series.Add(salesSeries);
chartControl1.Series.Add(targetSeries);
模式 2:使用日期数据的 DateTime 轴
ChartSeries series = new ChartSeries("Temperature");
series.Type = ChartSeriesType.Line;
// Add points with DateTime X values
series.Points.Add(new DateTime(2024, 1, 1), 18.5);
series.Points.Add(new DateTime(2024, 1, 2), 19.2);
series.Points.Add(new DateTime(2024, 1, 3), 17.8);
// Configure X axis for DateTime
chartControl1.PrimaryXAxis.ValueType = ChartValueType.DateTime;
chartControl1.PrimaryXAxis.DateTimeFormat = "dd/MM/yyyy";
chartControl1.Series.Add(series);
模式 3:自定义工具提示
chartControl1.ShowToolTips = true;
chartSeries.PrepareStyle += (sender, args) =>
{
ChartSeries series = sender as ChartSeries;
ChartPoint point = series.Points[args.Index];
args.Style.ToolTip = $"Value: {point.YValues[0]:N2}";
};
模式 4:将图表导出为 PDF
// Export to PDF
chartControl1.SaveImage("chart.pdf");
// Export to image
chartControl1.SaveImage("chart.png");
关键属性
ChartControl:
Series- 要显示的 ChartSeries 集合PrimaryXAxis、PrimaryYAxis- 主轴配置Legend- 图例可见性和外观Titles- 图表标题集合ShowToolTips- 启用交互式工具提示
ChartSeries:
Type- 图表类型(Column、Line、Pie 等)Points- 数据点集合CategoryModel- 数据绑定模型Style- 视觉外观设置Text- 序列显示名称
ChartAxis:
ValueType- 数据类型(Double、DateTime、Category 等)Range- 最小值/最大值Interval- 标签间距Title- 轴标题文本
常见用例
- 销售仪表板: 使用多个序列的柱形图/折线图展示销售趋势
- 财务分析: 使用蜡烛图/OHLC 图可视化股票数据
- 统计报告: 使用直方图、箱线图分析数据分布
- 性能监控: 使用带 DateTime 轴的折线图展示时间序列数据
- 对比图表: 使用条形图比较类别
- 数据分布: 使用饼图/圆环图展示百分比分布
- 科学数据: 使用散点图/气泡图进行相关性分析
- 项目管理: 使用甘特图展示时间线
相关技能
- 实现 Syncfusion Windows Forms 组件 - 主库概览
- 如需其他平台的内容,请参阅上级 documentations 文件夹