MS Chart Control: аннотации не отображаются при использовании FastLines - PullRequest
3 голосов
/ 09 марта 2011

При использовании Fastlines аннотации не отображаются на графике (Независимо от характера аннотации) Это очень раздражает, и я прочитал MSDN на эту тему, нет никаких следов такого ограничения. Если кто-нибудь может подтвердить это странное / ошибочное поведение и предложить какое-то обходное решение, он очень приветствуется.
Единственный уродливый трюк, который я обнаружил, - это построить дублирующую прозрачную линию и привязать аннотации к ее точкам. По крайней мере, я надеюсь, что этот пост не позволит другим разработчикам потратить на это внимание.

Чем больше я использую MS Chart Control (Ex-Dundas), тем больше я привыкаю к ​​грязным взломам, подобным этим.
Только один среди слишком много спойлера «ночь / сон / жизнь» для разработчиков.

РЕДАКТИРОВАТЬ:
Чтобы ответить на запрос примера кода:

  System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series();
  series1.ChartArea = myChartArea.Name;
  series1.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.FastLine;
  series1.Legend = "Default";
  series1.Name = "Series1";
  this.chart.Series.Add(series1);

  Random random = new Random();
  for (int pointIndex = 0; pointIndex < 10; pointIndex++)
   series1.Points.AddXY(DateTime.Now.AddHours(pointIndex), random.Next(5, 60));

  RectangleAnnotation annotation = new RectangleAnnotation();
  annotation.AnchorDataPoint = series1.Points[1];
  annotation.Text = "Just Won't Work";
  annotation.ForeColor = Color.Black;
  annotation.Font = new Font("Arial", 12); ;
  annotation.LineWidth = 2;

  chart.Annotations.Add(annotation);

Ответы [ 2 ]

3 голосов
/ 09 марта 2011

Да, я проверял, и вы правы ...

Кроме того, цитата из этой ссылки MSDN :

Тип диаграммы FastLine - это вариант Линейный график, который значительно уменьшает время рисования серии который содержит очень большое количество Точки данных. Используйте этот график в ситуации, когда очень большие наборы данных используются и скорость рендеринга критический.

Некоторые функции построения диаграмм опущены в диаграмме FastLine для улучшения спектакль. Функции опущены включить контроль на уровне точки визуального атрибуты, маркеры, точка данных метки и тени.

Если вам действительно нужно Annotations, я думаю, вам следует перейти на Line График ...

2 голосов
/ 09 марта 2011

Одно из решений, которое я реализовал для удовлетворения моих конкретных потребностей, - поместить аннотации в дополнительную серию линий, для которой BorderWidth установлено в 0, чтобы линия не отображалась, и содержали только точки, которые я хочу аннотировать.

Итак, у меня есть 2 серии, одна с SeriesChartType "FastLine", а другая (невидимая) с SeriesChartType "Line" с некоторыми точками из первой серии, где я хочу свои аннотации (видимые).

Хакино это работает и не снижает производительность, если у вас нет тысяч аннотаций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...