XRChart.CustomDrawSeriesPoint Event

Occurs before a series point is drawn when the chart's contents is being drawn.

Namespace: DevExpress.XtraReports.UI

Assembly: DevExpress.XtraReports.v18.2.dll


public event CustomDrawSeriesPointEventHandler CustomDrawSeriesPoint
Public Event CustomDrawSeriesPoint As CustomDrawSeriesPointEventHandler

The event handler CustomDrawSeriesPointEventHandler receives an argument of the CustomDrawSeriesPointEventArgs type.

The CustomDrawSeriesPoint event is raised before every series point is painted. The event parameter's Series property provides the series which enables the series view and other specific series options to be determined. The SeriesPoint property provides the series point which enables to all the data that corresponds to the series point being painted.

And the SeriesDrawOptions property provides drawing options specific to each series. Note that the return value of this property should be typecast to the corresponding type (e.g., BarDrawOptions).


This example demonstrates how to implement custom drawing in charts when drawing the series points of charts. To do this, you should handle the XRChart.CustomDrawSeriesPoint event, and then you can change some of the drawing parameters using its event args.

using DevExpress.XtraCharts;
// ...

private void xrChart1_CustomDrawSeriesPoint(object sender, 
CustomDrawSeriesPointEventArgs e) {
   // These changes will be applied to Bar Series only.
   BarDrawOptions drawOptions = e.SeriesDrawOptions as BarDrawOptions;
   if (drawOptions == null)

   // Get the fill options for the series point.
   drawOptions.FillStyle.FillMode = FillMode.Gradient;
   RectangleGradientFillOptions options = drawOptions.FillStyle.Options 
       as RectangleGradientFillOptions;
   if (options == null)

   // Get the value at the current series point.
   double val = e.SeriesPoint[0];

   // If the value is less than 2.5, then fill the bar with green colors.
   if (val < 2.5) {
      options.Color2 = Color.FromArgb(154, 196, 84);
      drawOptions.Color = Color.FromArgb(81, 137, 3);
      drawOptions.Border.Color = Color.FromArgb(100, 39, 91, 1);
   // ... if the value is less than 5.5, then fill the bar with yellow colors.
   else if (val < 5.5) {
      options.Color2 = Color.FromArgb(254, 233, 124);
      drawOptions.Color = Color.FromArgb(249, 170, 15);
      drawOptions.Border.Color = Color.FromArgb(60, 165, 73, 5);
   // ... if the value is greater, then fill the bar with red colors.
   else {
      options.Color2 = Color.FromArgb(242, 143, 112);
      drawOptions.Color = Color.FromArgb(199, 57 ,12);
      drawOptions.Border.Color = Color.FromArgb(100, 155, 26, 0);

See Also