Pre loader

Tag: key

Welcome to the SciChart Forums!

  • Please read our Question Asking Guidelines for how to format a good question
  • Some reputation is required to post answers. Get up-voted to avoid the spam filter!
  • We welcome community answers and upvotes. Every Q&A improves SciChart for everyone

WPF Forums | JavaScript Forums | Android Forums | iOS Forums

1 vote


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:

  1. 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.
  2. 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()
        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()
        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?

Showing 1 result