Back to Devexpress

How to: Obtain Values Calculated for Automatic Axis Date-Time Scale Modes

windowsforms-6407-controls-and-libraries-chart-control-examples-creating-charts-data-representation-how-to-obtain-values-calculated-for-automatic-axis-date-time-scale-modes.md

latest2.8 KB
Original Source

How to: Obtain Values Calculated for Automatic Axis Date-Time Scale Modes

  • Nov 13, 2018
  • 2 minutes to read

Handle the ChartControl.AxisScaleChanged event to obtain the axis‘ automatically calculated grid alignment and measurement unit values when the scale mode is automatic. The event arguments also contain the axis itself. This event occurs when the scale mode, measure unit, grid alignment, or grid spacing of the axis scale has been changed.

csharp
private void Form1_Load(object sender, EventArgs e) {
    this.ordersTableAdapter.Fill(this.nwindDataSet.Orders);
    this.chartControl.AxisScaleChanged += OnAxisScaleChanged;
}

private void OnAxisScaleChanged(object sender, AxisScaleChangedEventArgs e) {
    AxisX axis = e.Axis as AxisX;
    DateTimeScaleChangedEventArgs args = e as DateTimeScaleChangedEventArgs;
    if ((args == null) || (args == null)) return;
    axis.Title.Text = String.Format(
        "The Axis Grid Alignment Unit is {0}\r\nThe Axis Measure Unit is {1}", 
        args.GridAlignmentChange.NewValue,
        args.MeasureUnitChange.NewValue);
}
vb
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
    Me.ordersTableAdapter.Fill(Me.nwindDataSet.Orders)
    AddHandler Me.chartControl.AxisScaleChanged, AddressOf OnAxisScaleChanged
End Sub

Private Sub OnAxisScaleChanged(ByVal sender As Object, ByVal e As AxisScaleChangedEventArgs) Handles chartControl.AxisScaleChanged
    Dim axis As AxisX = TryCast(e.Axis, AxisX)
    Dim args As DateTimeScaleChangedEventArgs = TryCast(e, DateTimeScaleChangedEventArgs)
    If (args Is Nothing) OrElse (args Is Nothing) Then
        Return
    End If
    axis.Title.Text = String.Format("The Axis Grid Alignment Unit is {0}" & vbCrLf & "The Axis Measure Unit is {1}", args.GridAlignmentChange.NewValue, args.MeasureUnitChange.NewValue)
End Sub

The result is shown in the following image.

See Also

Data Aggregation

How to: Use Automatic Date-Time Scale Modes of an Axis

How to: Exclude Weekends and Holidays from the Axis Scale