mcpField
S
syncfusion-winforms-chart

syncfusion-winforms-chart

github.com/syncfusion开发280 次安装1 周前更新
代码仓库

关于 syncfusion-winforms-chart

面向 Windows Forms 开发者的 Syncfusion ChartControl 图表指南,涵盖多种图表类型、数据绑定、交互与导出,可用于业务数据可视化。

主要功能

  1. 0135 种以上图表类型
  2. 02绑定多种数据源
  3. 03多系列与多轴配置
  4. 04缩放、平移与工具提示
  5. 05导出 PDF、Office 文档和图像

适用场景

  1. 01展示销售趋势与对比
  2. 02可视化金融行情数据
  3. 03生成统计分析图表
  4. 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.md
axes-configuration.md
chart-area.md
chart-events.md
chart-series.md
chart-title.md
chart-types.md
data-labels-tooltips.md
data-population.md
exporting-printing.md
getting-started.md
legend-configuration.md
localization.md
performance-optimization.md
runtime-features.md
statistical-formulas.md
troubleshooting.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/chart-area.md

  • 图表区域属性和布局
  • 背景、边框、边距
  • 内部区域自定义
  • 阴影效果
外观和样式

📄 阅读: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 - 轴标题文本

常见用例

  1. 销售仪表板: 使用多个序列的柱形图/折线图展示销售趋势
  2. 财务分析: 使用蜡烛图/OHLC 图可视化股票数据
  3. 统计报告: 使用直方图、箱线图分析数据分布
  4. 性能监控: 使用带 DateTime 轴的折线图展示时间序列数据
  5. 对比图表: 使用条形图比较类别
  6. 数据分布: 使用饼图/圆环图展示百分比分布
  7. 科学数据: 使用散点图/气泡图进行相关性分析
  8. 项目管理: 使用甘特图展示时间线

相关技能

评论

支持 Markdown