syncfusion-winforms-chart
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseImplementing 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:
- - Collection of ChartSeries to display
Series - ,
PrimaryXAxis- Main axes configurationPrimaryYAxis - - Legend visibility and appearance
Legend - - Collection of chart titles
Titles - - Apply predefined themes
Skins - - Enable interactive tooltips
ShowToolTips
ChartSeries:
- - Chart type (Column, Line, Pie, etc.)
Type - - Collection of data points
Points - - Data binding model
CategoryModel - - Visual appearance settings
Style - - Series display name
Text
ChartAxis:
- - Data type (Double, DateTime, Category, etc.)
ValueType - - Min/max values
Range - - Spacing between labels
Interval - - Axis title text
Title
ChartControl:
- - 待展示的ChartSeries集合
Series - ,
PrimaryXAxis- 主坐标轴配置PrimaryYAxis - - 图例可见性与外观
Legend - - 图表标题集合
Titles - - 应用预定义主题
Skins - - 启用交互提示框
ShowToolTips
ChartSeries:
- - 图表类型(Column、Line、Pie等)
Type - - 数据点集合
Points - - 数据绑定模型
CategoryModel - - 视觉外观设置
Style - - 系列展示名称
Text
ChartAxis:
- - 数据类型(Double、DateTime、Category等)
ValueType - - 最小值/最大值范围
Range - - 标签间隔
Interval - - 坐标轴标题文本
Title
Common Use Cases
常见使用场景
- Sales Dashboard: Column/line charts with multiple series for sales trends
- Financial Analysis: Candle/OHLC charts for stock data visualization
- Statistical Reports: Histogram, box plot for data distribution analysis
- Performance Monitoring: Line charts with DateTime axis for time-series data
- Comparison Charts: Bar charts for category comparison
- Data Distribution: Pie/doughnut charts for percentage breakdown
- Scientific Data: Scatter/bubble charts for correlation analysis
- Project Management: Gantt charts for timeline visualization
- 销售仪表盘: 带多系列的柱形图/折线图,用于展示销售趋势
- 金融分析: Candle/OHLC图表,用于股票数据可视化
- 统计报表: 直方图、箱线图,用于数据分布分析
- 性能监控: 带DateTime坐标轴的折线图,用于展示时间序列数据
- 对比图表: 条形图,用于类别对比
- 数据分布: 饼图/环形图,用于占比拆分展示
- 科学数据: 散点图/气泡图,用于相关性分析
- 项目管理: 甘特图,用于时间线可视化
Related Skills
相关技能
- Implementing Syncfusion Windows Forms Components - Main library overview
- For other platforms, see parent documentations folder
- 实现Syncfusion Windows Forms组件 - 主库概览
- 其他平台的相关内容请查看父级文档文件夹