这个示例展示了如何使用 日期时间刻度模式 (人工和自动)。

注意,当 AxisXBase.DateTimeScaleMode 属性值被设置为 Manual 时,应该人工指定 AxisBase.DateTimeGridAlignmentAxisBase.DateTimeMeasureUnit 属性。 当使用任何自动日期时间刻度模式时,可以在特殊的 ChartControl.DateTimeMeasurementUnitsCalculated (WebChartControl.DateTimeMeasurementUnitsCalculated) 事件中获得为这些属性自动计算的值。

因为这些模式属于轴,因此应该把 图象 对象转换为适当的图象类型,以便于在运行时刻访问它们。

为了使此示例正确工作,需要把一个图表控件和一个组合框添加到窗体上,在组合框中列出可用的模式。 在填充图表数据之后,以下列方式接管 comboBox1_SelectedIndexChanged 事件。

C#CopyCode image复制代码
using System;
using System.Windows.Forms;
using DevExpress.XtraCharts;
// ...

private void Form1_Load(object sender, EventArgs e) {
    this.comboBox1.SelectedIndex = 0;
}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) {
    switch (comboBox1.SelectedIndex) {
        case 0:
            ((XYDiagram)this.chartControl1.Diagram).AxisX.DateTimeScaleMode = 
                DateTimeScaleMode.Manual;
            ((XYDiagram)this.chartControl1.Diagram).AxisX.DateTimeMeasureUnit = 
                DateTimeMeasurementUnit.Day;
            ((XYDiagram)this.chartControl1.Diagram).AxisX.DateTimeGridAlignment = 
                DateTimeMeasurementUnit.Day;
            break;
        case 1:
            ((XYDiagram)this.chartControl1.Diagram).AxisX.DateTimeScaleMode = 
                DateTimeScaleMode.AutomaticAverage;
            break;
        case 2:
            ((XYDiagram)this.chartControl1.Diagram).AxisX.DateTimeScaleMode = 
                DateTimeScaleMode.AutomaticIntegral;
            break;
    }
}
Visual BasicCopyCode image复制代码
Imports System
Imports System.Windows.Forms
Imports DevExpress.XtraCharts
' ...

Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
    Me.comboBox1.SelectedIndex = 0
End Sub

Private Sub comboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) _ 
Handles comboBox1.SelectedIndexChanged
    Select Case comboBox1.SelectedIndex
        Case 0
            CType(Me.chartControl1.Diagram, XYDiagram).AxisX.DateTimeScaleMode = _ 
                DateTimeScaleMode.Manual
            CType(Me.chartControl1.Diagram, XYDiagram).AxisX.DateTimeMeasureUnit = _ 
                DateTimeMeasurementUnit.Day
            CType(Me.chartControl1.Diagram, XYDiagram).AxisX.DateTimeGridAlignment = _ 
                DateTimeMeasurementUnit.Day
        Case 1
            CType(Me.chartControl1.Diagram, XYDiagram).AxisX.DateTimeScaleMode = _ 
                DateTimeScaleMode.AutomaticAverage
        Case 2
            CType(Me.chartControl1.Diagram, XYDiagram).AxisX.DateTimeScaleMode = _ 
                DateTimeScaleMode.AutomaticIntegral
    End Select
End Sub

CodeCentralShow Me

在 DevExpress Code Central 数据库中可以找到完整的示例项目,网址是 http://www.devexpress.com/example=E1531。 取决于目标平台类型 (ASP.NET、WinForms 等),可以在线运行本示例,或者下载自动可执行的示例。

Expand image参阅