Skip to main content

ColorObjectColorizer Class

A colorizer that uses SeriesBase.ColorDataMember field values to paint series points.

Namespace: DevExpress.XtraCharts

Assembly: DevExpress.XtraCharts.v24.1.dll

NuGet Package: DevExpress.Charts

Declaration

[TypeConverter(typeof(ColorObjectColorizerTypeConverter))]
public class ColorObjectColorizer :
    ChartColorizerBase

Remarks

The ColorObjectColorizer is a default colorizer. You need to specify the SeriesBase.ColorDataMember property to use it. The ColorDataMember field can contain the following values:

  • an integer ARGB color value (431493885);
  • three or six digit hex code (#fc0, #ff005d) ;
  • a string color name (SkyBlue);
  • a Color object.

Use the SeriesViewBase.Colorizer property to assign the colorizer to a series view. Refer to the Series Point Colorizer topic for more information about colorizers.

Example

Follow the steps below to use the Color Object Colorizer:

Note

The complete sample project is available in the following repository: https://github.com/DevExpress-Examples/winforms-chart-colorize-charts-using-the-color-object-colorizer.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml.Linq;
using DevExpress.XtraCharts;

namespace ColorObjectColorizerExample {
    public partial class Form1 : Form {
        const string filepath = "..\\..\\Data\\GDP.xml";

        public Form1() {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e) {
            #region #BarSeries
            // Create and customize a bar series.
            Series barSeries = new Series() {
                DataSource = LoadData(filepath),
                ArgumentDataMember = "Country",
                ColorDataMember = "NationalColor",
                View = new SideBySideBarSeriesView()
            };
            barSeries.View.Colorizer = new ColorObjectColorizer();
            barSeries.ValueDataMembers.AddRange(new string[] { "Product" });
            #endregion #BarSeries

            // Add the series to the ChartControl's Series collection.
            chartControl1.Series.Add(barSeries);

            // Show a title for the values axis.
            ((XYDiagram)chartControl1.Diagram).AxisY.Title.Text = "GDP per capita, $";
            ((XYDiagram)chartControl1.Diagram).AxisY.Title.Visibility = DevExpress.Utils.DefaultBoolean.True;
        }

        #region #DataLoad
        class HpiPoint {
            public string Country { get; set; }
            public double Product { get; set; }
            public string NationalColor { get; set; }
        }

        // Loads data from an XML data source.
        static List<HpiPoint> LoadData(string filepath) {
            XDocument doc = XDocument.Load(filepath);
            List<HpiPoint> points = new List<HpiPoint>();
            foreach (XElement element in doc.Element("G20HPIs").Elements("CountryStatistics")) {
                points.Add(new HpiPoint() {
                    Country = element.Element("Country").Value,
                    Product = Convert.ToDouble(element.Element("Product").Value),
                    NationalColor = element.Element("NationalColor").Value
                });
            }
            return points;
        }
        #endregion #DataLoad
    }
}

Implements

Inheritance

See Also