格式化特定数据点的Microsoft Chart Control X Axis标签

时间:2011-07-27 09:15:22

标签: c# .net winforms user-interface charts

在winfow应用程序中,我有一个带有2个图表区域的ms图表。 第一个图表区域包含4个系列(堆叠和条形)

我需要更改某些特定点的X轴标签颜色,但在VS 2010中,我只能更改轴标签文本而不能更改颜色。

有办法吗?

2 个答案:

答案 0 :(得分:2)

在此链接中: http://msdn.microsoft.com/en-us/library/dd456628.aspx

你会发现使用LabelStyle类来改变Axes的标签。使用 LabelStyle.ForeColor 属性更改标签的颜色。

答案 1 :(得分:1)

我知道对于OP来说已经太迟了,但是对于其他寻找如何做到这一点的人来说这可能是有用的。

自定义标签允许您设置颜色,问题是如果添加一个自定义标签,则所有标准标签都会消失,因此您必须为整个轴创建自定义标签,然后设置您想要的颜色的颜色与众不同。

此代码假定您需要为每个X值添加标签。如果您有大量的X值,则需要调整代码。

double offset = 0.5;//Choose an offset that is 1/2 of the range between x values
for (int i = 0; i < chart1.Series[0].Points.Count; i++)
{
    var customLabel = new CustomLabel();
    //NOTE: the custom label will appear at the mid-point between the FromPosition and the ToPosition
    customLabel.FromPosition = chart1.Series[0].Points[i].XValue - offset; //set beginning position (uses axis values)
    customLabel.ToPosition = chart1.Series[0].Points[i].XValue + offset; //set ending position  (uses axis values)
    customLabel.Text = chart1.Series[0].Points[i].XValue.ToString(); //set the text to display, you may want to format this value
    if (i == 3)
    {
    customLabel.ForeColor = Color.Green;//only change the 3rd label to be green, the rest will default to black
    }
    chart1.ChartAreas[0].AxisX.CustomLabels.Add(customLabel);
}