syncfusion-winforms-chart

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Implementing Syncfusion Windows Forms Charts

实现Syncfusion Windows Forms Charts

Essential Chart for Windows Forms is a comprehensive charting control supporting 35+ chart types for business applications. It features extensive customization, data binding, interactive capabilities, and export functionality for creating presentation-quality charts.
Essential Chart for Windows Forms是一款功能全面的图表控件,为业务应用提供35+种图表类型支持。它具备丰富的自定义能力、数据绑定、交互功能和导出能力,可用于制作符合展示要求的高质量图表。

When to Use This Skill

何时使用本技能

Use this skill when you need to:
  • Create any type of chart in Windows Forms applications
  • Visualize data with line, area, bar, column, pie, or financial charts
  • Implement interactive charts with zoom, pan, or tooltips
  • Bind chart data from DataSet, DataTable, or custom data sources
  • Configure chart axes, legends, titles, or appearance
  • Export charts to PDF, Excel, Word, or images
  • Add statistical analysis or formulas to charts
  • Customize chart styling, colors, or themes
当你需要完成以下任务时可使用本技能:
  • 在Windows Forms应用中创建任意类型的图表
  • 使用折线图、面积图、条形图、柱形图、饼图或金融图表实现数据可视化
  • 实现支持缩放、平移或提示框的交互式图表
  • 绑定来自DataSet、DataTable或自定义数据源的图表数据
  • 配置图表坐标轴、图例、标题或外观
  • 将图表导出为PDF、Excel、Word或图片格式
  • 为图表添加统计分析或公式能力
  • 自定义图表样式、颜色或主题

Component Overview

组件概览

ChartControl is the main component providing:
  • 35+ chart types: Area, Bar, Bubble, Candle, Column, Combination, Funnel, Gantt, Histogram, Line, Pie, Pyramid, and more
  • Flexible data binding: DataSet, DataTable, DataView, custom models via interfaces
  • Multiple series support: Overlay multiple data series with different types
  • Advanced axes: Primary/secondary axes, DateTime support, logarithmic scales, custom intervals
  • Rich customization: Skins, palettes, fonts, gradients, shadows
  • Interactive features: Zooming, panning, tooltips, hit testing, runtime modification
  • Export capabilities: PDF, Excel, Word, images, printing with preview
  • Statistical support: Built-in formulas for analysis
ChartControl 是核心组件,提供以下能力:
  • 35+种图表类型: 面积图、条形图、气泡图、Candle图、柱形图、组合图、漏斗图、甘特图、直方图、折线图、饼图、金字塔图等
  • 灵活的数据绑定: 支持DataSet、DataTable、DataView、通过接口实现的自定义模型
  • 多系列支持: 可叠加展示多种不同类型的数据系列
  • 高级坐标轴能力: 主/次坐标轴、DateTime支持、对数刻度、自定义间隔
  • 丰富的自定义能力: 皮肤、调色板、字体、渐变、阴影效果
  • 交互特性: 缩放、平移、提示框、命中测试、运行时修改
  • 导出能力: PDF、Excel、Word、图片、带预览的打印功能
  • 统计支持: 内置分析公式

Documentation and Navigation Guide

文档与导航指南

Getting Started

快速入门

📄 Read: references/getting-started.md
  • Assembly deployment and NuGet packages
  • Adding ChartControl to Windows Forms
  • Basic data population with BindingList
  • Design-time ChartWizard configuration
  • First chart example
📄 阅读: references/getting-started.md
  • 程序集部署与NuGet包安装
  • 向Windows Forms项目中添加ChartControl
  • 使用BindingList实现基础数据填充
  • 设计时ChartWizard配置
  • 首个图表示例

Chart Types

图表类型

📄 Read: references/chart-types.md
  • Overview of 35+ available chart types
  • Chart type categories and use cases
  • Y-value requirements per type
  • Setting chart type via Type property
  • Type-specific configuration
📄 阅读: references/chart-types.md
  • 35+种可用图表类型概览
  • 图表类型分类与适用场景
  • 每种类型的Y值要求
  • 通过Type属性设置图表类型
  • 特定类型的配置方法

Data Population

数据填充

📄 Read: references/data-population.md
  • Binding DataSet, DataTable, DataView
  • ChartDataBindModel and CategoryAxisDataBindModel
  • Custom data models via IChartSeriesModel
  • Performance optimization for large datasets
📄 阅读: references/data-population.md
  • 绑定DataSet、DataTable、DataView
  • ChartDataBindModel与CategoryAxisDataBindModel使用
  • 通过IChartSeriesModel实现自定义数据模型
  • 大数据集的性能优化

Chart Series

图表系列

📄 Read: references/chart-series.md
  • Creating and adding ChartSeries
  • ChartPoint class for data points
  • Managing X and Y values
  • Series styling and customization
  • Multiple series configuration
📄 阅读: references/chart-series.md
  • 创建与添加ChartSeries
  • 数据点对应的ChartPoint类使用
  • 管理X和Y值
  • 系列样式与自定义
  • 多系列配置

Axes Configuration

坐标轴配置

📄 Read: references/axes-configuration.md
  • Primary and secondary axes (PrimaryXAxis, PrimaryYAxis)
  • Axis value types (Double, DateTime, Category, Logarithmic)
  • Range and interval settings
  • Custom label formatting and positioning
  • Multiple axes support
📄 阅读: references/axes-configuration.md
  • 主坐标轴与次坐标轴(PrimaryXAxis、PrimaryYAxis)
  • 坐标轴值类型(Double、DateTime、Category、Logarithmic)
  • 范围与间隔设置
  • 自定义标签格式化与定位
  • 多坐标轴支持

Chart Area

图表区域

📄 Read: references/chart-area.md
  • Chart area properties and layout
  • Background, borders, margins
  • Interior customization
  • Shadow effects
📄 阅读: references/chart-area.md
  • 图表区域属性与布局
  • 背景、边框、边距
  • 内部样式自定义
  • 阴影效果

Appearance and Styling

外观与样式

📄 Read: references/appearance-styling.md
  • Built-in skins (Metro, Office, etc.)
  • Color palettes and CustomPalette
  • Gradient and solid color styles
  • Font and text formatting
  • BrushInfo for advanced styling
📄 阅读: references/appearance-styling.md
  • 内置皮肤(Metro、Office等)
  • 颜色调色板与CustomPalette
  • 渐变与纯色样式
  • 字体与文本格式化
  • 用于高级样式设置的BrushInfo

Legend Configuration

图例配置

📄 Read: references/legend-configuration.md
  • Enabling and positioning legends
  • LegendPosition and LegendAlignment
  • Inside vs outside placement
  • Custom legend items
  • Multiple legends
📄 阅读: references/legend-configuration.md
  • 启用与定位图例
  • LegendPosition与LegendAlignment设置
  • 内部与外部放置方式
  • 自定义图例项
  • 多图例支持

Chart Title

图表标题

📄 Read: references/chart-title.md
  • Adding ChartTitle objects
  • Title text and positioning
  • Font and appearance customization
  • Multiple titles support
📄 阅读: references/chart-title.md
  • 添加ChartTitle对象
  • 标题文本与定位
  • 字体与外观自定义
  • 多标题支持

Data Labels and Tooltips

数据标签与提示框

📄 Read: references/data-labels-tooltips.md
  • Enabling data labels (DisplayText)
  • Label formatting and orientation
  • Tooltip configuration (ShowToolTips)
  • Custom tooltip content via PrepareStyle event
  • Appearance customization
📄 阅读: references/data-labels-tooltips.md
  • 启用数据标签(DisplayText)
  • 标签格式化与方向设置
  • 提示框配置(ShowToolTips)
  • 通过PrepareStyle事件自定义提示框内容
  • 外观自定义

Runtime Features

运行时特性

📄 Read: references/runtime-features.md
  • Zooming and panning capabilities
  • Hit testing for chart regions
  • Interactive manipulation
  • Dynamic data updates
  • Runtime series modification
📄 阅读: references/runtime-features.md
  • 缩放与平移能力
  • 图表区域命中测试
  • 交互操作
  • 动态数据更新
  • 运行时系列修改

Chart Events

图表事件

📄 Read: references/chart-events.md
  • ChartControl and series events
  • PrepareStyle event for customization
  • Mouse and interaction events
  • Chart region click events
  • Event handling patterns
📄 阅读: references/chart-events.md
  • ChartControl与系列事件
  • 用于自定义的PrepareStyle事件
  • 鼠标与交互事件
  • 图表区域点击事件
  • 事件处理模式

Exporting and Printing

导出与打印

📄 Read: references/exporting-printing.md
  • Export to PDF, Excel, Word
  • Image export (PNG, BMP, JPEG)
  • Printing and print preview
  • Multi-page printing configuration
📄 阅读: references/exporting-printing.md
  • 导出为PDF、Excel、Word
  • 图片导出(PNG、BMP、JPEG)
  • 打印与打印预览
  • 多页打印配置

Statistical Formulas

统计公式

📄 Read: references/statistical-formulas.md
  • Built-in statistical functions
  • Mean, standard deviation, variance
  • Distributions, T-test, F-test, Z-test
  • Applying formulas to series data
📄 阅读: references/statistical-formulas.md
  • 内置统计函数
  • 均值、标准差、方差
  • 分布、T检验、F检验、Z检验
  • 为系列数据应用公式

Performance Optimization

性能优化

📄 Read: references/performance-optimization.md
  • Large dataset handling strategies
  • Data binding performance
  • Rendering optimization
  • Memory management best practices
📄 阅读: references/performance-optimization.md
  • 大数据集处理策略
  • 数据绑定性能优化
  • 渲染优化
  • 内存管理最佳实践

Localization

本地化

📄 Read: references/localization.md
  • Localizing chart text and labels
  • Culture-specific formatting
  • Resource file configuration
  • Date and number formatting
📄 阅读: references/localization.md
  • 图表文本与标签本地化
  • 文化特定格式化
  • 资源文件配置
  • 日期与数字格式化

Troubleshooting

故障排查

📄 Read: references/troubleshooting.md
  • Common issues and solutions
  • Data display problems
  • Performance issues
  • Design-time configuration problems
📄 阅读: references/troubleshooting.md
  • 常见问题与解决方案
  • 数据展示问题
  • 性能问题
  • 设计时配置问题

Quick Start Example

快速入门示例

csharp
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;
csharp
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;

Common Patterns

常见模式

Pattern 1: Multiple Series with Different Types

模式1:不同类型的多系列展示

csharp
// 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);
csharp
// 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);

Pattern 2: DateTime Axis with Date Data

模式2:带日期数据的DateTime坐标轴

csharp
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);
csharp
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);

Pattern 3: Custom Tooltips

模式3:自定义提示框

csharp
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}";
};
csharp
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}";
};

Pattern 4: Export Chart to PDF

模式4:导出图表为PDF

csharp
// Export to PDF
chartControl1.SaveImage("chart.pdf", ChartImageFormat.PDF);

// Export to image
chartControl1.SaveImage("chart.png", ChartImageFormat.Png);
csharp
// Export to PDF
chartControl1.SaveImage("chart.pdf", ChartImageFormat.PDF);

// Export to image
chartControl1.SaveImage("chart.png", ChartImageFormat.Png);

Key Properties

核心属性

ChartControl:
  • Series
    - Collection of ChartSeries to display
  • PrimaryXAxis
    ,
    PrimaryYAxis
    - Main axes configuration
  • Legend
    - Legend visibility and appearance
  • Titles
    - Collection of chart titles
  • Skins
    - Apply predefined themes
  • ShowToolTips
    - Enable interactive tooltips
ChartSeries:
  • Type
    - Chart type (Column, Line, Pie, etc.)
  • Points
    - Collection of data points
  • CategoryModel
    - Data binding model
  • Style
    - Visual appearance settings
  • Text
    - Series display name
ChartAxis:
  • ValueType
    - Data type (Double, DateTime, Category, etc.)
  • Range
    - Min/max values
  • Interval
    - Spacing between labels
  • Title
    - Axis title text
ChartControl:
  • Series
    - 待展示的ChartSeries集合
  • PrimaryXAxis
    ,
    PrimaryYAxis
    - 主坐标轴配置
  • Legend
    - 图例可见性与外观
  • Titles
    - 图表标题集合
  • Skins
    - 应用预定义主题
  • ShowToolTips
    - 启用交互提示框
ChartSeries:
  • Type
    - 图表类型(Column、Line、Pie等)
  • Points
    - 数据点集合
  • CategoryModel
    - 数据绑定模型
  • Style
    - 视觉外观设置
  • Text
    - 系列展示名称
ChartAxis:
  • ValueType
    - 数据类型(Double、DateTime、Category等)
  • Range
    - 最小值/最大值范围
  • Interval
    - 标签间隔
  • Title
    - 坐标轴标题文本

Common Use Cases

常见使用场景

  1. Sales Dashboard: Column/line charts with multiple series for sales trends
  2. Financial Analysis: Candle/OHLC charts for stock data visualization
  3. Statistical Reports: Histogram, box plot for data distribution analysis
  4. Performance Monitoring: Line charts with DateTime axis for time-series data
  5. Comparison Charts: Bar charts for category comparison
  6. Data Distribution: Pie/doughnut charts for percentage breakdown
  7. Scientific Data: Scatter/bubble charts for correlation analysis
  8. Project Management: Gantt charts for timeline visualization
  1. 销售仪表盘: 带多系列的柱形图/折线图,用于展示销售趋势
  2. 金融分析: Candle/OHLC图表,用于股票数据可视化
  3. 统计报表: 直方图、箱线图,用于数据分布分析
  4. 性能监控: 带DateTime坐标轴的折线图,用于展示时间序列数据
  5. 对比图表: 条形图,用于类别对比
  6. 数据分布: 饼图/环形图,用于占比拆分展示
  7. 科学数据: 散点图/气泡图,用于相关性分析
  8. 项目管理: 甘特图,用于时间线可视化

Related Skills

相关技能

  • Implementing Syncfusion Windows Forms Components - Main library overview
  • For other platforms, see parent documentations folder
  • 实现Syncfusion Windows Forms组件 - 主库概览
  • 其他平台的相关内容请查看父级文档文件夹