Skip to main content

WebChartControl.CustomDrawSeriesPoint Event

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

Namespace: DevExpress.XtraCharts.Web

Assembly: DevExpress.XtraCharts.v23.2.Web.dll

NuGet Package: DevExpress.Web.Visualization

Declaration

public event CustomDrawSeriesPointEventHandler CustomDrawSeriesPoint

Event Data

The CustomDrawSeriesPoint event's data class is CustomDrawSeriesPointEventArgs. The following properties provide information specific to this event:

Property Description
DisposeLegendFont Gets or sets the value specifying whether the e.DXLegendFont should be disposed when drawing is finished. Inherited from CustomDrawSeriesEventArgsBase.
DisposeLegendMarkerImage Gets or sets the value specifying whether e.DXLegendMarkerImage should be disposed when drawing is finished. Inherited from CustomDrawSeriesEventArgsBase.
DXLegendFont Gets or sets the text font of the legend item of the series or series point that is currently being painted. Inherited from CustomDrawSeriesEventArgsBase.
DXLegendMarkerImage Gets or sets the image of the legend item marker of the series or series point that is currently being painted. Inherited from CustomDrawSeriesEventArgsBase.
LabelText Gets or sets the text of a label for the point currently being painted.
LegendDrawOptions Returns the draw settings of the legend item of the series that is currently being drawn. Inherited from CustomDrawSeriesEventArgsBase.
LegendFont Gets or sets the text font of the legend item of the series or series point that is currently being painted. Inherited from CustomDrawSeriesEventArgsBase.
LegendMarkerImage Gets or sets the image of the legend item marker of the series or series point that is currently being painted. Inherited from CustomDrawSeriesEventArgsBase.
LegendMarkerImageSizeMode Gets or sets the image size mode of the legend item marker of the series or series point that is currently being painted. Inherited from CustomDrawSeriesEventArgsBase.
LegendMarkerSize Gets or sets the size of the legend item marker of the series or series point that is currently being painted. Inherited from CustomDrawSeriesEventArgsBase.
LegendMarkerVisible Gets or sets the visibility of the legend item marker of the series or series point that is currently being painted. Inherited from CustomDrawSeriesEventArgsBase.
LegendText Gets or sets the text of the legend item of the series or series point that is currently being painted. Inherited from CustomDrawSeriesEventArgsBase.
LegendTextColor Gets or sets the text color of the legend item of the series or series point that is currently being painted. Inherited from CustomDrawSeriesEventArgsBase.
LegendTextVisible Gets or sets the text visibility of the legend item of the series whose points are currently being drawn. Inherited from CustomDrawSeriesEventArgsBase.
PercentValue Returns the portion of the series point’s value within the total value of a series group to which the series point belongs.
SecondLabelText Gets or sets the text of a second label for the point currently being painted for specific series views.
SelectionState Specifies the selection state mode for the series whose points are currently being painted.
Series Returns the series that is currently being painted. Inherited from CustomDrawSeriesEventArgsBase.
SeriesDrawOptions Returns the draw settings of the series that is currently being drawn. Inherited from CustomDrawSeriesEventArgsBase.
SeriesPoint Gets the series point currently being painted.
TotalLabelText Obsolete. Gets or sets the text of a series group’s total label.
TotalValue Returns the total value of a series group to which the series point belongs.

Remarks

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

And the CustomDrawSeriesEventArgsBase.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).

The WebChartControl.CustomDrawSeries and CustomDrawSeriesPoint events are always raised in the following order.

  • The CustomDrawSeries event for the first series in the chart’s WebChartControl.Series collection. The first series in the series collection is a Series for which the SeriesCollection.IndexOf method returns 0.
  • The CustomDrawSeriesPoint event for all the series points of the first series.
  • The CustomDrawSeries event for the second series in the chart’s WebChartControl.Series collection.
  • The CustomDrawSeriesPoint event for all series points of the second series.
  • …and so on for all the other series and their points.

Example

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

using DevExpress.XtraCharts;
// ...

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

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

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