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

0 votes
0 answers
211 views

I’m getting a Argument Exception with the message: An item with the same key has already been added.
This happens when I use the Rollover or Cursor Chart Modifiers.
Visual Studio is unable to evaluate the exception.

System.Transactions Critical: 0 : http://msdn.microsoft.com/TraceCodes/System/ActivityTracing/2004/07/Reliability/Exception/UnhandledUnhandled exceptionUBB3.exeSystem.ArgumentException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089An item with the same key has already been added. at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
at System.Collections.Generic.Dictionary2.Insert(TKey key, TValue value, Boolean add)
at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable
1 source, Func2 keySelector, Func2 elementSelector, IEqualityComparer1 comparer)
at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable
1 source, Func2 keySelector, Func2 elementSelector)
at Abt.Controls.SciChart.BaseRenderableSeries.NearestHitResult(Point rawPoint)
at Abt.Controls.SciChart.BaseRenderableSeries.HitTest(Point rawPoint, Boolean interpolate)
at Abt.Controls.SciChart.RolloverModifier.c361550073312ad3169f1a460aa44d307(Point c9fb04a4a0826429a55d599c809a4f6e6, Boolean c3791a1b71c1577bde30b55c12b2a5583)
at Abt.Controls.SciChart.RolloverModifier.OnModifierMouseMove(ModifierMouseArgs e)
at Abt.Controls.SciChart.ModifierGroup.c07d1dcb1c7ba461bbcbf5a1dd47c58a5(IChartModifier c6b1effd112e5355cd5f051dd91cd4f67, ModifierMouseArgs cbb39038dde40bfc3fdcfa70f4bbf8778)
at (Object , IChartModifier , ModifierMouseArgs )
at A.c4839d4bc452a3cc647260fc7e1ad10c1.c6dea473323fdce89c6d7460d087afc9c(Object c2e4dcf306e5d5e570ccc0d688db6e42c, IChartModifier c2e4dcf306e5d5e570ccc0d688db6e42c, ModifierMouseArgs c2e4dcf306e5d5e570ccc0d688db6e42c)
at Abt.Controls.SciChart.ModifierGroup.c9e8960a6a8527c20ac9e46e162c72b22(Action2 c4bd4ab823835cf92d221476b6fb65a17, ModifierMouseArgs c4c23d80d4d060e409c3479ef17d6c65e)
at Abt.Controls.SciChart.ModifierGroup.OnModifierMouseMove(ModifierMouseArgs e)
at Abt.Controls.SciChart.Utility.Mouse.MouseManager.ca5839647cb861fa726b3261de72c52c0(ModifierMouseArgs cbb39038dde40bfc3fdcfa70f4bbf8778, IReceiveMouseEvents c18509698be3f9366c690e7d2b107b62c, Boolean c3791a1b71c1577bde30b55c12b2a5583)
at Abt.Controls.SciChart.Utility.Mouse.MouseManager.cf88844ca415efe316ebbc6460c4d5477.c7ca7af35639f570327394b11001b543a.c5980502f76d6e282773f80c5da0f84e7(IReceiveMouseEvents c133657388cc0f6f6615e21e129ac4b3a)
at A.c3631c672e3fc9e342ac08ff1a63d428e.cacf72b657252e3e73860afb89d70cb9f[c13c28af86f0b14202b9c7ef43b1bd11a](IEnumerable
1 c40a30a1bb6416cd164565919fdef15a9, Action1 c885aac61bc9832561b7ff07903c88d5e)
at Abt.Controls.SciChart.Utility.Mouse.MouseManager.cf88844ca415efe316ebbc6460c4d5477.c6b7aec04ebfc28e092adf0e569761d15(Object cae49ecc8585f35e8dd5ce624f7fb7ab5, MouseEventArgs c4c23d80d4d060e409c3479ef17d6c65e)
at (Object , Object , MouseEventArgs )
at A.c5acf1f2ae72fe65952cbdccf2f5089f9.c6dea473323fdce89c6d7460d087afc9c(Object c2e4dcf306e5d5e570ccc0d688db6e42c, Object c2e4dcf306e5d5e570ccc0d688db6e42c, MouseEventArgs c2e4dcf306e5d5e570ccc0d688db6e42c)
at A.cd43732d305fa7b65b611005fdcef35d8.c769264f2530d8b47196e47cbbe58cb89(MouseEventArgs cbb39038dde40bfc3fdcfa70f4bbf8778)
at A.cd43732d305fa7b65b611005fdcef35d8.cbe8969038b3b47585f72b9c703cd47da(Object c5e18ac7ef25e3e9c51dc36756b25ed1e, MouseEventArgs c4c23d80d4d060e409c3479ef17d6c65e)
at System.Windows.Input.MouseEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
at System.Windows.Input.InputManager.ProcessStagingArea()
at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
at System.Windows.Application.RunDispatcher(Object ignore)
at System.Windows.Application.RunInternal(Window window)
at System.Windows.Application.Run(Window window)
at System.Windows.Application.Run()
at UBB3.App.Main()</StackTrace><ExceptionString>System.ArgumentException: An item with the same key has already been added.
at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
at System.Collections.Generic.Dictionary
2.Insert(TKey key, TValue value, Boolean add)
at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable1 source, Func2 keySelector, Func2 elementSelector, IEqualityComparer1 comparer)
at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable1 source, Func2 keySelector, Func2 elementSelector)
at Abt.Controls.SciChart.BaseRenderableSeries.NearestHitResult(Point rawPoint)
at Abt.Controls.SciChart.BaseRenderableSeries.HitTest(Point rawPoint, Boolean interpolate)
at Abt.Controls.SciChart.RolloverModifier.c361550073312ad3169f1a460aa44d307(Point c9fb04a4a0826429a55d599c809a4f6e6, Boolean c3791a1b71c1577bde30b55c12b2a5583)
at Abt.Controls.SciChart.RolloverModifier.OnModifierMouseMove(ModifierMouseArgs e)
at Abt.Controls.SciChart.ModifierGroup.c07d1dcb1c7ba461bbcbf5a1dd47c58a5(IChartModifier c6b1effd112e5355cd5f051dd91cd4f67, ModifierMouseArgs cbb39038dde40bfc3fdcfa70f4bbf8778)
at (Object , IChartModifier , ModifierMouseArgs )
at A.c4839d4bc452a3cc647260fc7e1ad10c1.c6dea473323fdce89c6d7460d087afc9c(Object c2e4dcf306e5d5e570ccc0d688db6e42c, IChartModifier c2e4dcf306e5d5e570ccc0d688db6e42c, ModifierMouseArgs c2e4dcf306e5d5e570ccc0d688db6e42c)
at Abt.Controls.SciChart.ModifierGroup.c9e8960a6a8527c20ac9e46e162c72b22(Action
2 c4bd4ab823835cf92d221476b6fb65a17, ModifierMouseArgs c4c23d80d4d060e409c3479ef17d6c65e)
at Abt.Controls.SciChart.ModifierGroup.OnModifierMouseMove(ModifierMouseArgs e)
at Abt.Controls.SciChart.Utility.Mouse.MouseManager.ca5839647cb861fa726b3261de72c52c0(ModifierMouseArgs cbb39038dde40bfc3fdcfa70f4bbf8778, IReceiveMouseEvents c18509698be3f9366c690e7d2b107b62c, Boolean c3791a1b71c1577bde30b55c12b2a5583)
at Abt.Controls.SciChart.Utility.Mouse.MouseManager.cf88844ca415efe316ebbc6460c4d5477.c7ca7af35639f570327394b11001b543a.c5980502f76d6e282773f80c5da0f84e7(IReceiveMouseEvents c133657388cc0f6f6615e21e129ac4b3a)
at A.c3631c672e3fc9e342ac08ff1a63d428e.cacf72b657252e3e73860afb89d70cb9f[c13c28af86f0b14202b9c7ef43b1bd11a](IEnumerable1 c40a30a1bb6416cd164565919fdef15a9, Action1 c885aac61bc9832561b7ff07903c88d5e)
at Abt.Controls.SciChart.Utility.Mouse.MouseManager.cf88844ca415efe316ebbc6460c4d5477.c6b7aec04ebfc28e092adf0e569761d15(Object cae49ecc8585f35e8dd5ce624f7fb7ab5, MouseEventArgs c4c23d80d4d060e409c3479ef17d6c65e)
at (Object , Object , MouseEventArgs )
at A.c5acf1f2ae72fe65952cbdccf2f5089f9.c6dea473323fdce89c6d7460d087afc9c(Object c2e4dcf306e5d5e570ccc0d688db6e42c, Object c2e4dcf306e5d5e570ccc0d688db6e42c, MouseEventArgs c2e4dcf306e5d5e570ccc0d688db6e42c)
at A.cd43732d305fa7b65b611005fdcef35d8.c769264f2530d8b47196e47cbbe58cb89(MouseEventArgs cbb39038dde40bfc3fdcfa70f4bbf8778)
at A.cd43732d305fa7b65b611005fdcef35d8.cbe8969038b3b47585f72b9c703cd47da(Object c5e18ac7ef25e3e9c51dc36756b25ed1e, MouseEventArgs c4c23d80d4d060e409c3479ef17d6c65e)
at System.Windows.Input.MouseEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
at System.Windows.Input.InputManager.ProcessStagingArea()
at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean&amp; handled)
at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean&amp; handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean&amp; handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG&amp; msg)
at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
at System.Windows.Application.RunDispatcher(Object ignore)
at System.Windows.Application.RunInternal(Window window)
at System.Windows.Application.Run(Window window)
at System.Windows.Application.Run()
at UBB3.App.Main()

0 votes
0 answers
295 views

I am using a CursorModifier with custom template to display tool tips with cross hairs on my scatter plots. Everything works as intended until the plot gets busy with points then the tool tip only shows for a few points. I am using ResamplingMode.None on my XyScatterRenderableSeries. Any ideas? Thanks

<s:CursorModifier IsEnabled="{Binding AreTooltipsEnabled}"
                  ReceiveHandledEvents="False" 
                  ShowTooltipOn="MouseOver" 
                  ShowAxisLabels="False"
                  SourceMode="AllSeries"  
                  ShowTooltip="True"                                      
                  TooltipContainerStyle="{StaticResource CursorTooltipStyle}"
                  LineOverlayStyle="{DynamicResource CursorLineStyle}"
                  UseInterpolation="True"/>
0 votes
384 views
  1. Is it possible to display the peak value instead of X and Y values at touch point using a modifier ? If so, how can I achieve this ? (Both Rollover and Cursor modifier only shows the X and Y values)

  2. In real time chart, since the values are updating continuously, the cursor modifier is constantly disappearing and appearing and is not stationary. How can I keep the cursor modifier always visible ?

  • Chui asked 9 months ago
  • last active 9 months ago
0 votes
406 views

I need to get Yaxis value of mouse with using OnClick Event. If I use CursorModifier I can get only one value of “primary” or first declared axis. So even this axis’s Visibility Property set as Collapsed I get is’s Y Value, and if displayed axes and “primary” have a different scale (and they have), I get a very wrong value. How can I get Y value of displayed axes or of all axes?

  • Ivan Kozlov asked 10 months ago
  • last active 10 months ago
0 votes
451 views

Hi, guys

it seems that i had found a mistake:

At SCICursorModifierStyle class if i try to set up axisVerticalTooltipCornerRadius property it lead to changing of axisHorizontalTooltipCornerRadius

Please take a look

Best regards,
Sushynski Andrei

0 votes
410 views

I’m creating a chart using scichart. I want to display some markers (eg. small Ellipses) on Yaxis for every Data Series depending on where the cursor is.
So far by using:

<s:SciChartSurface.ChartModifier>
   <s:ModifierGroup>
      <s:CursorModifier/>
   </s:ModifierGroup>
</s:SciChartSurface.ChartModifier>

I’ve obtained a cursor that marks the datapoints directly on charts.
Here is a picture of what I want to obtain (see the markers on Yaxis):
Link

  • Jarosław M asked 12 months ago
  • last active 12 months ago
0 votes
759 views

I have attempted to change the text format on the cursors that show the Y-Intercept on my vertical line annotations. WIthin by ModifierGroup, I added the following:

<s:CursorModifier ContentStringFormat="0.000"/>

I suspect that since the Y intercept is a double or float, it is causing the ContentStringFormat functionality not fire (can’t deal with a non-string). Is there a way to set the format of these cursors to a 0.000 format? Right now they are showing as 0.00.

Thank you

  • Ryan Woods asked 2 years ago
  • last active 2 years ago
0 votes
865 views

Hello,

My aim is to create a permament tooltip that will always show current mouse position and current position with extra information when cursor is over renderable series. I’ve looked through all examples and found suitable one (example). But there is a little problem. When cursor is out of renderable series x-data range, tool tip disappearrs, even ShowTooltipOnproperty is set “Always”.

How can I solve this problem?

Thanks in advance

  • Egor asked 2 years ago
  • last active 2 years ago
1 vote
1k views

Upon your advice for a recent question, I have converted my annotations over to an XY scatter point series, using custom point markers to render them. That is working beautifully and is much faster than creating annotations as WPF UIElements. I now need to figure out if/how I can get the tooltips displaying like I would prefer.

I currently have a cursor modifier that I’m using to display a consolidated rollover tooltip for all of the visible series. However, now that the annotations are data series also, their information is getting included in this tooltip and I don’t want it to. I would like to have a separate tooltip that appears when the mouse is hovering over a custom point marker that displays the custom metadata for the point. This was the functionality I had working when I was creating the annotations as actual annotations. I’m hoping I can achieve it when creating them as regular data points.

So I guess my questions are: Is there a way to only include certain data series for a given chart modifier so I can keep my “regular” data and “annotation” data segregated? And, is there a way to show a tooltip with metadata only when the actual point is hovered? I was looking at the Series With Metadata example which is similar to what I want to achieve, but the tooltip appears whenever the mouse hovers over anything, not just when it’s over an actual point.

Thanks,
Scott

  • sdamge asked 2 years ago
  • last active 2 years ago
0 votes
872 views

I have multliple renderable series on one scichartsurface and each series has its own y-axis, when CursorModifier-cross moves over line/scatter point/ohlc/candle series how can I ONLY show the y-Value on the with the rendered series matching y-Axis?

With multiple rendered series its virtually impossible to determine which y-Axis value pertains to the specific point of the CursorModifier which “hit-tests” a rendered series.

Is there a simple way to only highlight the y-Value on the matching yAxis as soon as the CursorModifier hit-tests a rendered series? I do not mind to show all yValues on all yAxes when the CursorModifier does not hit-test any rendered series.

Thanks

  • bbmat asked 2 years ago
  • last active 2 years ago
0 votes
3k views

How can I set Tooltip to emerge when pressing definite keyboard button? All my mouse button are needed for other things, hover is not good variant. If my memory serves me correctly in first versions there was possibility to show tooltip on Ctrl button.

  • RTrade A asked 3 years ago
  • last active 3 years ago
1 vote
3k views

How to set Crosshair (CursorModifier) color and thickness in xaml?

  • RTrade A asked 3 years ago
  • last active 3 years ago
0 votes
0 answers
3k views

I use a similar multi-pane setup as your multi-pane stock chart demo and specify the ChartModifier within SciChartSurface.ChartModifier as follows:

<s:SciChartSurface.ChartModifier>
                        <s:ModifierGroup s:MouseEventGroup="SharedMouseGroup">
                            <s:RubberBandXyZoomModifier IsAnimated = "False" IsXAxisOnly = "True" ExecuteOn = "MouseRightButton"/>
                            <s:ZoomPanModifier XyDirection="XYDirection" ClipModeX = "ClipAtExtents" ExecuteOn ="MouseLeftButton" />
                            <s:MouseWheelZoomModifier XyDirection = "XYDirection"/>
                            <s:ZoomExtentsModifier IsAnimated = "False" ExecuteOn = "MouseDoubleClick" />
                            <s:CursorModifier SourceMode="AllSeries"  UseInterpolation="True" ShowAxisLabels="True"/>
                            <s:LegendModifier Name="GeneralLegend" ShowLegend="True" LegendPlacement ="Inside" GetLegendDataFor="AllSeries" Margin="10" LegendItemTemplate="{StaticResource LegendItemTemplate}"/>

                            <s:SeriesSelectionModifier ReceiveHandledEvents="True">
                                <s:SeriesSelectionModifier.SelectedSeriesStyle>
                                    <Style TargetType="s:BaseRenderableSeries">
                                        <Setter Property="StrokeThickness" Value="10"/>
                                    </Style>
                                </s:SeriesSelectionModifier.SelectedSeriesStyle>
                            </s:SeriesSelectionModifier>

                        </s:ModifierGroup>
                    </s:SciChartSurface.ChartModifier>

The problem I have is that the vertical chart modifier (a vertical line as part of the crosshair that vertically tracks the mouse cursor) is only visible within the respective pane where the mouse cursor is currently located at. When I move the mouse cursor onto another pane then the vertical line of the cross hair tracks in this different pane but only within this specific pane. I want the vertical line to be visible across all panes just like in your multi-pane stock chart demo. When I pan or zoom any of the panes then all panes are responding accordingly and in synchronized fashion, so I am sure the panes’ xaxis are all correctly linked to the primary xAxis.

What am I doing wrong?

Thanks

  • bbmat asked 3 years ago
  • last active 3 years ago
Showing 13 results
This template supports the sidebar's widgets. Add one or use Full Width layout.