Nevron Forum

anchor annotation to legend data item

https://www.nevron.com/Forum/Topic5962.aspx

By Daniela Rybarova - Monday, December 19, 2011

Hello, I have a problem with the anchor of annotation.

I have the Cartesian chart _chart and its legend with these properties:

NLegend legend = new NLegend();

legend.Dock = DockStyle.Top;
legend.Data.ExpandMode = LegendExpandMode.ColsOnly;
legend.FitAlignment = ContentAlignment.TopCenter;

_chart.DisplayOnLegend = legend;

And I have the annotation:
_annotation = new NRoundedRectangularCallout();
_annotation.FillStyle = new NColorFillStyle(Color.Yellow);
_annotation.UseAutomaticSize = true;


I want to show the annotation when I click to legend data item. But the position of annotation is wrong. I think the position corresponds
to legend FitAligment TopLeft. What am I doing wrong?


private void nChartControl_MouseDown(object sender, MouseEventArgs e)
{
NHitTestResult hitTestResult = nChartControl.HitTest(e.X, e.Y);
NLegend legend = _chart.DisplayOnLegend;

_annotation.Anchor = new NLegendDataItemAnchor(legend, hitTestResult.ObjectIndex);
_annotation.Text = "......";

nChartControl.Panels.Add(_annotation);
}

Thanks for your help,
Daniela
By Nevron Support - Tuesday, December 20, 2011

Hi Filip,

What is the version of the control you're currently using - we just tested with a relatively new version (11.12.14.12) and it was working Ok with the following test case:

  NChart _chart;
  NRoundedRectangularCallout _annotation;

  private void Form1_Load(object sender, EventArgs e)
  {
   _chart = nChartControl1.Charts[0];
   _chart.Dock = DockStyle.Fill;

   NPointSeries point = new NPointSeries();

   NLength pointSize = new NLength(8, NGraphicsUnit.Point);
   point.Size = pointSize;

   point.Values.Add(10);
   point.Values.Add(20);
   point.Values.Add(30);

   _chart.Series.Add(point);

   NLegend legend = nChartControl1.Legends[0];

   legend.Data.MarkSize = new NSizeL(pointSize, pointSize);
   legend.Dock = DockStyle.Top;
   legend.Data.ExpandMode = LegendExpandMode.ColsOnly;
   legend.FitAlignment = ContentAlignment.TopCenter;

   _annotation = new NRoundedRectangularCallout();
   _annotation.FillStyle = new NColorFillStyle(Color.Yellow);
   _annotation.UseAutomaticSize = true;
  }

  


  private void button1_Click(object sender, EventArgs e)
  {
   NLegend legend = _chart.DisplayOnLegend;

   _annotation.Anchor = new NLegendDataItemAnchor(legend, 0);
   _annotation.Text = "......";

   nChartControl1.Panels.Add(_annotation);

   nChartControl1.Refresh();
  }

Let us know if the problem persists with the new version as well...