Есть ни свойства, ни CustomAttributes
для достижения этой цели для AxisLabels
.
Но CustomLabels
прекрасно справится с этой задачей.
Вот пример, который добавляет CustumLabel
для каждого DataPoint
в Series
и дает ему случайный цвет:
Настройка данных:
Random rnd = new Random(0);
List<Color> colors = new List<Color>() { Color.Red, Color.Firebrick, Color.Gold,
Color.DeepPink, Color.Azure, Color.IndianRed, Color.ForestGreen };
ChartArea ca = chart.ChartAreas[0];
Series s = chart.Series[0];
for (int i = 1; i < 7; i++)
{
s.Points.AddXY(i, i+ rnd.Next(20 - i));
}
Добавить CustomLabels
:
foreach (var dp in s.Points)
{
CustomLabel cl = new CustomLabel();
cl.FromPosition = dp.XValue;
cl.ToPosition = dp.XValue ;
cl.Text = dp.YValues[0]+ "$";
cl.ForeColor = colors[rnd.Next(colors.Count)];
ca.AxisX.CustomLabels.Add(cl);
}
Обратите внимание, что для ChartType Radar
это довольно просто; для большинства других типов получение FromPosition
и ToPosition
довольно сложно: там вам нужно вычислить (обычно) центр между двумя точками ..
Святая корова! Это было потрясающе. Большое спасибо. – Kasra
Возможно ли получить цвета «DataPoint» на «MarkerBorderColor»? @TaW – Kasra
Несомненно. Убедитесь, что вы установили 'MarkerStyle', хотя ..! - 'dp.MarkerBorderColor = cl.ForeColor; dp.MarkerColor = Color.MediumAquamarine; dp.MarkerStyle = MarkerStyle.Diamond; dp.MarkerSize = 10; '- [Пример] (http://imgur.com/a/TTrcl) – TaW