syncfusion-winforms-chart

SKILL.md

Implementing 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.

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

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

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

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

Data Population

πŸ“„ Read: references/data-population.md

  • Binding DataSet, DataTable, DataView
  • ChartDataBindModel and CategoryAxisDataBindModel
  • Custom data models via IChartSeriesModel
  • Performance optimization for large datasets

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

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

Chart Area

πŸ“„ Read: references/chart-area.md

  • Chart area properties and layout
  • Background, borders, margins
  • Interior customization
  • Shadow effects

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

Legend Configuration

πŸ“„ Read: references/legend-configuration.md

  • Enabling and positioning legends
  • LegendPosition and LegendAlignment
  • Inside vs outside placement
  • Custom legend items
  • Multiple legends

Chart Title

πŸ“„ Read: references/chart-title.md

  • Adding ChartTitle objects
  • Title text and positioning
  • Font and appearance customization
  • Multiple titles support

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

Runtime Features

πŸ“„ Read: references/runtime-features.md

  • Zooming and panning capabilities
  • Hit testing for chart regions
  • Interactive manipulation
  • Dynamic data updates
  • Runtime series modification

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

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

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

Performance Optimization

πŸ“„ Read: references/performance-optimization.md

  • Large dataset handling strategies
  • Data binding performance
  • Rendering optimization
  • Memory management best practices

Localization

πŸ“„ Read: references/localization.md

  • Localizing chart text and labels
  • Culture-specific formatting
  • Resource file configuration
  • Date and number formatting

Troubleshooting

πŸ“„ Read: references/troubleshooting.md

  • Common issues and solutions
  • Data display problems
  • Performance issues
  • Design-time configuration problems

Quick Start Example

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

// 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

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

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

// 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

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

Related Skills

Weekly Installs
2
First Seen
1 day ago
Installed on
mcpjam2
claude-code2
kilo2
replit2
junie2
windsurf2