Hi all,
I want to capture the XY coordinate related to XY axis of my scichartsurface after a MouseLeftButtonDown. At first I try this:
Point mousePoint = e.GetPosition(((SciChartSurface)sender));
but the coordinates are in pixel? instead I want my xy that are double…
Then I try this code from an example:
Point mousePoint = e.GetPosition(((SciChartSurface)sender).GridLinesPanel as UIElement);
var hitTest = ((SciChartSurface)sender).RenderableSeries[0].HitTest(mousePoint);
now hitTest.XValue and hitTest.YValue are the correct data of the nearest point, but I want the exactly coordinates of the point where I clicked, not the nearest. It is possible? How can I do?
Thanks for reply
- 10tony89 asked 11 years ago
- You must login to post comments
Hello Tony,
you need the coordinate calculator API.
- Get a Coordinate Calculator instance (per axis, valid per render pass and only once drawn)
var xCalc = sciChartSurface.XAxis.GetCurrentCoordinateCalculator(); var yCalc = sciChartSurface.YAxis.GetCurrentCoordinateCalculator();
- Transform your pixel coordinates relative to the main render area (where gridlines and series are drawn)
Point mousePoint = e.GetPosition(sciChartSurface.ModifierSurface as UIElement);
- Use the coordinate Calculators to convert to/from data values!
double xDataValue = xCalc.GetDataValue(mousePoint.X); double yDataValue = yCalc.GetDataValue(mousePoint.Y);
That should do it!
Note the coordinate calculator will transform to / from datavalues and coordinates, it is used internally by SciChart so very fast and reliable.
Hope this helps!
Andrew
- Andrew Burnett-Thompson answered 11 years ago
-
Hi Andrew, the code that you have post work correctly for X coordinate, but not for the Y. You make a little mistake for the y, double yDataValue = xCalc.GetDataValue(mousePoint.Y); You should replace xCalc with yCalc so everything work fine. Thanks a lot! Bye
- You must login to post comments
Please login first to submit.