Hi,
I am trying out SciChart, and so far I am impressed about the performance and capabilities.
For my application I need to have a cursor showing the X and Y values of the current data point. The RolloverModifier seems to be a good start, but at some points i need other behaviour:
- I need the cursor to only move when the mouse button is down. So
you can zoom/pan the graph, with the cursor remaining on the same
data point. - I need the cursor to move to the next/previous data
point on a keypress (Keys.Left and Keys.Right).
The exapmle “Custom ChartModifiers – Part 2 – Custom ZoomPanModifier and Zooming on KeyPress” seems to be a good start, where the OnAttached() method of a SimpleZoomInOutModifier class, derived from ChartModifierBase, is overridden to get access to keypress events:
public override void OnAttached()
{
base.OnAttached();
var scichart = ((SciChartSurface)ParentSurface);
var mainWindow = FindLogicalParent(scichart);
mainWindow.PreviewKeyDown -= SciChart_PreviewKeyDown;
mainWindow.PreviewKeyDown += SciChart_PreviewKeyDown;
}
private T FindLogicalParent(SciChartSurface scichart) where T:class
{
var parent = (FrameworkElement)scichart.Parent;
while (parent != null)
{
var candidate = parent as T;
if (candidate != null) return candidate;
parent = (FrameworkElement)parent.Parent;
}
return null;
}
But the function FindLogicalParent() gives compiler errors, and in the downloaded code for this exaple application, this method isn’t even there… the method OnAttached() in the downloaded code is:
public override void OnAttached()
{
base.OnAttached();
var scichart = ((SciChartSurface)ParentSurface);
scichart.PreviewKeyDown -= SciChart_PreviewKeyDown;
scichart.PreviewKeyDown += SciChart_PreviewKeyDown;
}
But this code doesn’t work. The SciChart_PreviewKeyDown eventhandler is never called.
How to move forward?
- Niet Herkenbaar asked 8 years ago
- last active 8 years ago