除了可以定制 轴标签 的整体外观以外,还可以在运行时刻获得各个轴标签。 然后,可以分别为它们应用所有可用的轴标签选项。 例如,可以根据某些标准 (例如轴的临界值),为轴标签应用不同的格式。
为此,推出了特殊的 ChartControl.CustomDrawAxisLabel 事件。 接管此事件来获得轴标签。
注意 |
---|
对于 WebChartControl,应该接管 WebChartControl.CustomDrawSeries 事件来完成此任务。 |
下列代码演示了这种功能的一种可行的实现方法。
C# | 复制代码 |
---|---|
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 Basic | 复制代码 |
---|---|
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 |
在下面的插图中显示了结果。
Show Me |
---|
在 DevExpress Code Central 数据库中可以找到完整的示例项目,网址是 http://www.devexpress.com/example=E1469。 取决于目标平台类型 (ASP.NET、WinForms 等),可以在线运行本示例,或者下载自动可执行的示例。 |