Pre loader

Tag: mouse events

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
19k views

Hi there. I have many chartwindows each with price and volume panes. Each chart has own ViewModel instance as datacontext. I need cursor to be synchronized in each chart between price chart and volume chart.
If I write in xaml <s:ModifierGroup s:MouseManager.MouseEventGroup="xxx"> it synchronizes all cursors of all charts. So I’m trying to do the following:

<s:ModifierGroup s:MouseManager.MouseEventGroup="{Binding MyMouseGroup}">

In ViewModel (part of code from different blocks):

private string _myMouseGroup;
_myMouseGroup = Guid.NewGuid().ToString();
       public string MyMouseGroup
        { get { return _myMouseGroup; }  }

But it’s not worked, Cursors are not synchronized in one chart. I understand that MyMouseGroup should be not string type but dependency property though in Xaml I can use any string. But I don’t have enough programming knowledge to figure out how to do it. Please help with that MyMouseGroup property.

  • RTrade A asked 10 years ago
  • last active 9 years ago
0 votes
0 answers
12k views

Good day!
I have a problem with annotations. When I add them by double clicking on surface with this snippet of code:

private TextPointAnnotation LoadTextPointAnnotation(double x1, double y1)
        {
            var textPoint = new TextPointAnnotation
            {
                X1 = x1,
                Y1 = y1,
                ElementX2 = -10,
                ElementY2 = -5,
                ElementFontSize = 9,
                AnnotationName = "TXTAnnot" + _annotaionCount,
                ElementFontColor = Colors.Yellow,
                ElementWidth = 50,
                ElementHeight = 20,
                BorderBrush = new SolidColorBrush(Colors.Red),
                Background = new SolidColorBrush(Color.FromArgb(78, 255, 0, 0)),
                YAxisId = TextOfYAxis,
                IsHidden = !_isTextPointAnnotationsVisible,
                IsEditable = true,
                AnnotationCanvas = AnnotationCanvas.AboveChart,
                CanEditText = false
            };
            textPoint.ElementText = String.Format("{0}", textPoint.AnnotationName);
            textPoint.ContextMenu = BuildMenu(textPoint);
            textPoint.MouseMove += AnnotationMove;
            textPoint.MouseRightButtonDown += OnRightMouseAnnotationDown;
            textPoint.PreviewMouseLeftButtonDown += textPoint_PreviewMouseLeftButtonDown;
            textPoint.PreviewMouseMove += textPoint_PreviewMouseMove;
            AnnotationCollection.Add(textPoint);
            return textPoint;
        }

They are visible for mouse actions (for example, mouse move, mouse down and etc.)(Image 1)
But when I add them programmaticaly, for example in Loaded method- LoadTextPointAnnotation(100,200), they are not visible for mouse actions, that I’ve already mentioned above(Image 2).

What is the reason of strange behaviour?

Thanks in advance.

  • Egor asked 9 years ago
  • last active 9 years ago
1 vote
19k views

I am considering applying server-side licensing for my javerScript application.

In the document below, there is a phrase “Our server-side licensing component is written in C++.”
(https://support-dev.scichart.com/index.php?/Knowledgebase/Article/View/17256/42/)

However, there is only asp.net sample code on the provided github.
(https://github.com/ABTSoftware/SciChart.JS.Examples/tree/master/Sandbox/demo-dotnet-server-licensing)

I wonder if there is a sample code implemented in C++ for server-side licensing.

Can you provide c++ sample code?
Also, are there any examples to run on Ubuntu?

0 votes
11k views

I have a ListBox containing ListBoxItems that are UserControls containing a SciChartSurface.

My user needs to be able to select an item in the ListBox. I find that if you click on the SciChartSurface, the item does not get selected. I had to click outside the SciChartSurface to select the ListBoxItem.

Is there an easy way to make SciChartSurface not consume the mouse event? The user will not be manipulating anything in the SciChartSurface so there is no need for it to handle any mouse events.

Thank you.

  • Kwokon Ng asked 8 years ago
  • last active 8 years ago
0 votes
12k views

I’ve created a custom rollover modifier, the aim being it only moves when the mouse is down. Pretty simple, here’s the code I have:

class Histogram2DSlicer : RolloverModifier
{
    public Histogram2DSlicer() : base()
    {
        ReceiveHandledEvents = true;
    }

    public override void OnModifierMouseMove(ModifierMouseArgs e)
    {
        Console.WriteLine(e.MouseButtons);
        if (e.MouseButtons == MouseButtons.Left)
        {
            base.OnModifierMouseMove(e);
        }
    }
}

However, the ModifierMouseArgs e.MouseButtons is “None” at all times, is this a bug or do the Modifiers not receive button events?

Joe

  • Ken Hobbs asked 8 years ago
  • last active 8 years ago
0 votes
17k views

Hello,
I would like to allow user click on Legend and highlight the corresponding Series on the chart but I don’t know if this feature is supported or not.

I tried to add mouse events to the Legend Modified but it seems like mouse events are not triggered

This is the simple code that I am using

<s:LegendModifier x:Name="chlLegend" ShowLegend="True" LegendPlacement="Top" Orientation="Horizontal" MouseDown="chlLegend_MouseDown" ScrollViewer.HorizontalScrollBarVisibility="Auto" />

Before investigating more I would like to ask you if you have any hints which is the correct way to implement this behavior.
Is the LegendModifier suitable for this or should I override instead the Legend Control Template?

Thank you in advance for the support

0 votes
11k views

Scenario: user selects an area of a heatmap chart using a box annotation via a mouse drag.

I have created a custom modifier to draw the box annotation. I’ve used this as the basis: SimpleDataPointSelectionModifier.ts

My question is: how to I get the X axis start + end values and the Y axis start + end values based on the area of the annotation/mouse coordinates.

Thanks

0 votes
13k views

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

0 votes
6k views

I am using FastLineRenderableSeries with DateTimeAxis for X-axis.

And, I’m using mouse event to get X-axis value use clicked by mouse.

I’m using code below.

Put vertical line at chart where nearest X value exists, when mouse button clicked

But sometimes MouseButtonEventArgs.GetPosition takes time.

Code like this.

        private void chartSurface_PreviewMouseDown(object sender, MouseButtonEventArgs e)
        {
                    if (isInitialized == false) return;

                    PerformanceAnalyzer.Start("chartSurface_PreviewMouseDown");

                    // Get mouse point
                    var mousePoint = e.GetPosition(chartSurface);

                    PerformanceAnalyzer.Check("e.GetPosition(chartSurface)");
        }

Normally.
Performance analyze start:2021/09/09 10:55:47 chartSurface_PreviewMouseDown
Performance analyze check:2021/09/09 10:55:47 elapsed:00:00:00.0027280 e.GetPosition(chartSurface)

When slow
Performance analyze start:2021/09/09 10:55:48 chartSurface_PreviewMouseDown
Performance analyze check:2021/09/09 10:55:48 elapsed:00:00:00.4303424 e.GetPosition(chartSurface)

Is there any good way to get more good and stable performance?

Showing 9 results

Try SciChart Today

Start a trial and discover why we are the choice
of demanding developers worldwide

Start TrialCase Studies