devexpress-winforms-charts
DevExpress WinForms Chart Control
DevExpress.XtraCharts.ChartControl is a 2D and 3D data-visualization component that supports 50+ series view types (bar, line, area, pie, financial, radar, polar, funnel, gantt, swift plot for huge datasets, etc.). The architecture is a four-level hierarchy: a ChartControl hosts a single Diagram of a specific type (XYDiagram, SimpleDiagram, GanttDiagram, RadarDiagram, PolarDiagram, SwiftPlotDiagram, or their 3D counterparts), the diagram contains a collection of Series, and each Series has a View (BarSeriesView, LineSeriesView, PieSeriesView, …) that determines its appearance. The diagram type is implicitly chosen by the first added series' view — adding a Series of ViewType.Pie produces a SimpleDiagram automatically; adding ViewType.Bar produces an XYDiagram.
Every chart concept — series, axis, label, legend, tooltip, crosshair, selection — exposes a consistent property model and a CustomDraw* event for cases the property model cannot cover. The same Series API works for bound and unbound modes: assign DataSource + ArgumentDataMember + ValueDataMembers for data binding, or Points.Add(new SeriesPoint(...)) for inline values.
When to Use This Skill
- Adding a chart to a WinForms app — pick a series view, bind data, configure axes.
- Choosing the right series view for the data shape (bar comparison vs trend line vs pie share vs financial OHLC vs radar profile vs gantt timeline).
- Configuring axes (primary + secondary; Numerical / DateTime / TimeSpan / Qualitative scale types) and their ranges.
- Formatting axis titles and labels (
TextPatternwith{A}/{V}/{VP}placeholders + .NET format specifiers). - Aggregating large data sets on a DateTime axis via
ScaleMode = AutomaticandAggregateFunction. - Configuring the legend — single or multiple legends, alignment, layout, per-series legend item text via
LegendTextPattern. - Enabling tooltips and the crosshair cursor; formatting their content; understanding when each one is the default.
- Enabling selection (Single, Multiple, or Extended) and choosing whether the entire series, a single point, or all points with the same argument get selected.