SciChart® the market leader in Fast WPF Charts, WPF 3D Charts, and now iOS Charting & Android Chart Components

Welcome to the SciChart Community Forums!

Please use the forums below to ask questions about SciChart. Take a moment to read our Question asking guidelines on how to ask a good question and our support policy

We also have a tag=SciChart on Stackoverflow.com where you can earn rep for your questions!

0
0

I have a chart which includes a RolloverModifier with Tooltip shown on MouseHover. This works very well, and RolloverModifer includes a nice HoverDelay property to determine how quickly the tooltip displays. Is there a way to get an event when the tooltip is actually displayed (or about to be displayed)? The normal FrameworkElement.TooltipOpening event does not fire in this situation.

Bill

Version
4.2.0.9036
  • Andrew
    Hi Bill, there isn’t a RolloverModifier event on tooltip shown, and looking at the code, no easy way to override a method and get a notification .. what did you want to do just out of interest? Maybe there is another way?
  • You must to post comments
0
0

I have a multi-series chart with a rollover cursor enabled. In one situation, I need to show a datagrid containing the tabular data, with the selected row updated to track the rollover cursor position when the user hovers over the chart. See attached. The data series can contain several million values. so without a hover delay, the list would be constantly moving when the user is zoomed out.
Bill

Images
  • You must to post comments
0
0

OK, so you are obviously tracking the movement of the rollover somehow e.g. on MouseMove.

Couldn’t you throttle this event with a 500ms timer to trigger the grid less frequently?

Take a look at the TimedMethod class in SciChart.Core. This can be used to create a throttle effectively:

TimedMethod _timedMethod;
void OnSomeFrequentEvent()
{
     if( _timedMethod != null) _timedMethod.Dispose();

    _timedMethod = TimedMethod.Invoke(() => 
    { 
          // This is the throttled event. 
          // Only invokes if 500ms passes without OnSomeFrequentEvent being called
    }).After(500).Go();

}

So no matter how many times OnSomeFrequentEvent() is called, you’ll only see the Action invoked after 500ms of silence, so to speak.

Does this help?

  • You must to post comments
0
0

Andrew,
This looks like a perfect solution. I was considering my own similar approach – but this is much easier.
Thanks,
Bill

  • You must to post comments
0
0

Followup – Works perfectly!.
Thanks again.
Bill

  • You must to post comments
Showing 4 results
Your Answer

Please first to submit.