除了可以定制 轴标签 的整体外观以外,还可以在运行时刻获得各个轴标签。 然后,可以分别为它们应用所有可用的轴标签选项。 例如,可以根据某些标准 (例如轴的临界值),为轴标签应用不同的格式。

为此,推出了特殊的 ChartControl.CustomDrawAxisLabel 事件。 接管此事件来获得轴标签。

Note注意

对于 WebChartControl,应该接管 WebChartControl.CustomDrawSeries 事件来完成此任务。

下列代码演示了这种功能的一种可行的实现方法。

C#CopyCode image复制代码
private void chartControl1_CustomDrawAxisLabel(object sender, CustomDrawAxisLabelEventArgs e) {
    AxisBase axis = e.Item.Axis;
    if (axis is AxisY || axis is AxisY3D || axis is RadarAxisY) {
        double axisValue = (double)e.Item.AxisValue;
        if (axisValue < 0) {
            e.Item.TextColor = Color.Red;
        }
        else if (axisValue > 0) {
            e.Item.Text = "+" + e.Item.Text;
            e.Item.TextColor = Color.Green;
        }
        else if (axisValue == 0) {
            e.Item.Text = "Zero";
        }
    }
}
Visual BasicCopyCode image复制代码
Private Sub chartControl1_CustomDrawAxisLabel(sender As Object, e As CustomDrawAxisLabelEventArgs)
   Dim axis As AxisBase = e.Item.Axis
   If TypeOf axis Is AxisY Or TypeOf axis Is AxisY3D Or TypeOf axis Is RadarAxisY Then
      Dim axisValue As Double = CDbl(e.Item.AxisValue)
      If axisValue < 0 Then
         e.Item.TextColor = Color.Red
      Else
         If axisValue > 0 Then
            e.Item.Text = "+" + e.Item.Text
            e.Item.TextColor = Color.Green
         Else
            If axisValue = 0 Then
               e.Item.Text = "Zero"
            End If
         End If
      End If
   End If
End Sub

在下面的插图中显示了结果。

CodeCentralShow Me

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

Expand image参阅