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

0 votes
0 answers
20 views

Hello, I am working for making a 3d model animation, but the problem I encounter is class ObjectModel3D has a dependency property named PositionProperty , but it has not a dependency property named XProperty or ZProperty, so I can’t use BeginAnimation or StoryBoard.Begin Class.

for StoryBoard Class, my code is:

_3dObject obj3d = new _3dObject();
         Vector3 vector3 = new Vector3();
         vector3.X = obj3d.ChassisModel.Position.X;

        var animationChassis = new DoubleAnimation()
        {
            From = obj3d.ChassisModel.Position.X,
            To = 100,
            Duration = new Duration(TimeSpan.FromSeconds(1))
        };

        Storyboard storyboard = new Storyboard();
        Storyboard.SetTarget(animationChassis,obj3d.ChassisModel);
        Storyboard.SetTargetProperty(animationChassis,new PropertyPath(ObjectModel3D.PositionProperty));
        storyboard.Children.Add(animationChassis);
        storyboard.Begin();

here Storyboard.SetTargetProperty(animationChassis,new PropertyPath(ObjectModel3D.PositionProperty)); is wrong because ObjectModel3D.PositionProperty can’t be applied.

for BeginAnimation, my code is :

TranslateTransform tt3D = new TranslateTransform();
        _3dObject obj3d = new _3dObject();
         var animationChassis = new DoubleAnimation()
        {
            From = obj3d.ChassisModel.Position.X,
            To = 100,
            Duration = new Duration(TimeSpan.FromSeconds(1))
        };

         obj3d.ChassisModel.RenderTransform = tt3D;

         tt3D.BeginAnimation(TranslateTransform.XProperty,animationChassis);

this code has no error(maybe), but it does nothing. I wanted to use TranslateTransform3D. but obj3d.ChassisModel.RenderTransform don’t correspond to TranslateTransform3D.

Do you have any thoughts about making an animation using ObjectModel3D or any other kind?
Please Help me!
Thanks!!

Update1
I’ve work on this for a whole day, I still didn’t find a way to animate a translation movement of 3d model.
I’m trying to add a dependency property to ObjectModel3D class.
if anyone has any idea, please bring it on.

Update 2
I doubt that ObjectModel3D could be used with DoubleAnimation or StoryBoard.
What I did is take a for loop to manipulate Position.X, and make sure to use second thread to do that.
PS : WPF is a bad platform for 3d model, U3D is better for C# user.

  • Jong Ming asked 4 days ago
  • last active 2 days ago
0 votes
40 views

Hello, I am looking for a solution about how to get a 3D model DLL, like Schichart did in the example:SciChart_AddObjectsToa3DChart, and the name of DLL is: SciChart.Examples.ExternalDependencies.
I wish I can also compile a 3d model into DLL, because if I import directly an Obj model, it will become a huge burden for WPF.
Please help me if you have some ideas. Thanks!

  • Jong Ming asked 4 days ago
  • last active 4 days ago
0 votes
0 answers
29 views

When I send the offline trial activation email it responds with “invalid username/password” despite me being able to sign in to the SciChart website with the same credentials.

0 votes
0 answers
66 views

Hello,

On our SciChart’s XAxis we are using a NumericAxis and within the NumericAxis we bind to a LabelProvider. In the UI, this works perfectly and we get the XAxis appearing with the titles we desire (as strings writing over the numeric values 0, 1, 2, …). Meanwhile the YAxis doesn’t use any LabelProvider and stays numeric. The XAxis.LabelProvider is an IList of strings.

Although this works great in the UI, when I export the SciChart it does not pick up the LabelProvider and the exported image only contains the numeric values 0, 1, 2, … on the XAxis.

I do the export as following:

SciChartSurfaceBase.ExportToFile(filename, SciChart.Core.ExportType.Png, useXamlRenderSurface, exportedSize);

Is there a way to get the ExportToFile command to acknowledge the LabelProvider is there like it does with the UI?

Thank you!
Hannah

0 votes
83 views

Hi.

I use MouseWheelZoomModifier. If some modifier key pressed (Ctrl, Shift, Alt) it produces scroll instead of zoom. My X axis is styled as follows:

<Style TargetType="s:DateTimeAxis">
            <Setter Property="TextFormatting" Value="dd-MM-yyyy"/>
            <Setter Property="SubDayTextFormatting" Value="HH:mm:ss"/>
            <Setter Property="AutoRange" Value="Never"/>
            <Setter Property="GrowBy" Value="0.1, 0.1"/>
            <Setter Property="AxisAlignment" Value="Bottom"/>
            <Setter Property="VisibleRangeLimitMode" Value="MinMax"/>
            <Setter Property="VisibleRange" Value="{Binding Mode=OneWay, RelativeSource={RelativeSource Mode=Self}, Path=VisibleRangeLimit}"/>
        </Style>

VisibleRangeLimit is set in code behind. So as you can see X axis can not go out of VisibleRangeLimit. So we came to my problem: with MouseWheelZoomModifier if I hold Ctrl button and scrolling, when X axis comes to limit it starts to zoom X axis.
The same happens with ZoomPanModifier, but in ZoomPanModifier it can be disabled by setting ClipModeX=”ClipAtExtents”, so when you approaches to the border and continue panning it simply do nothing – that’s what behavour I need in MouseWheelZoomModifier with Ctlr key pressed. I could not find anything like this in MouseWheelZoomModifier. Any ideas?

0 votes
0 answers
0 views

Histogram statistics: if negative numbers appear when xaxis is positioned on the left, why is it on the top? The integers are below, which is not what we want. Please tell me how to revise it. It’s urgent

Please refer to Fig
The effect we want is that the negative number in the red area is below and the integer in the white area is above. How can we modify it?

0 votes
83 views

Hello,

I am using the BrushAnnotation and it works fine except that the
mouseover events seems to happen too soon.
I mean that when the mouse is close to the BrushAnnotation, but not on it,
the mouse cursor changed and I can drag the BrushAnnotation.
It happens for all lines but especially for shapes with many segments which
are closed to each other, see attached file ‘MouseOver event too soon (my application).png’.
I saw something similar in your ‘Trade Annotation’ example ,
it happens when I used the Tools=>Pointer, see attached figure ‘MouseOver event too soon (from Scichart example).png’.
Can I changed the distance from which the mouseover event starts?

Best regards,
Eyal

  • Eyal Nevo asked 3 weeks ago
  • last active 2 weeks ago
0 votes
86 views

Hello,

How can I make the XY coordinate to be symmetrical and stay
symmetrical also after zooming.
That is including the case the user is zooming by selecting unsymmetrical area (rectangle ).
In symmetrical XY both axis have the same scale, meaning the real distance on the screen of 1 in the X axis is exactly the same as 1 in the Y axis.
One of the results of symmetrical XY axis is the grid lines creates squares instead of rectangles.
See the attached figure for example of symmetrical XY axis.

Regards,
Eyal

  • Eyal Nevo asked 3 weeks ago
  • last active 2 weeks ago
0 votes
93 views

I’ve been asked to create a chart where the gridlines are always in the same position regardless of scale/zoom. When the user performs a zoom, I will update a textbox else where on the app (not on the chart, there are no axis labels) with the current value between each tick. The further in you zoom, the small the value is between each tick/gridline.

They also want zoom to be handled by two buttons on the screen, outside of the chart.

So, I’ve found the MVVM implementation for the Axes. I have created the observable collections an bound them up. I’m planning on handling the button commands, zooming the chart, and then redrawing the axis by modifying the AxisViewModel collection from my control view model.

Am I on the right track? If so, my question is, how do I implement the zoom using MVVM?

I see a lot of documentation on customizable ChartModifiers, but I’m not seeing anything about using them in an MVVM environment. Do they follow the same paradigm as the Axes and RenderableSeries? An observable collection?

How do I take a command from an external button and reroute it to zoom the chart in an MVVM environment?

0 votes
94 views

I have a FastLineRenderableSeries, sorted data is added in XValues (datetimeaxis) and YValues, Everything works well until date changes, at exactly 00:00:00 points are not connected properly. Please see the attached image.

  • Bilal Maan asked 3 weeks ago
  • last active 3 weeks ago
0 votes
106 views

I’m wanting to apply an AxisLabelContainerStyle and AxisLabelTemplate to my YAxes which are of type NumericAxisViewModel.

My style and template:

<Style TargetType="{x:Type sci:AxisLabelControl}" x:Key="CursorAxisLabelStyle">
        <Setter Property="Background" Value="Black" />
    </Style>

<DataTemplate DataType="{x:Type sci:AxisInfo}" x:Key="CursorNumericAxisLabelTemplate">
        <Border BorderBrush="White" BorderThickness="1">
            <TextBlock Foreground="White" Margin="2" Text="{Binding DataValue, StringFormat={}{0:0.0}}" />
        </Border>
    </DataTemplate>

And I’ve tried the following with both TargetTypes NumericAxis and NumericAxisForMvvm. Using NumericAxisViewModel as the TargetType gives the error: “must derive from FrameworkElement or FrameworkContentElement.”

<Style TargetType="{x:Type sci:NumericAxis}">
        <Setter Property="sci:CursorModifier.AxisLabelContainerStyle" Value="{StaticResource ResourceKey=CursorAxisLabelStyle}" />
        <Setter Property="sci:CursorModifier.AxisLabelTemplate" Value="{StaticResource ResourceKey=CursorNumericAxisLabelTemplate}" />
    </Style>

But neither of the two types (NumericAxis and NumericAxisForMvvm) seems to take on the style and template.

My XAxis is a TimeSpanAxis and the styles work just fine when applied there. (I have a different AxisInfo DataTemplate for the TimeSpanAxis.)

Any ideas on how I can apply those styles and templates to my YAxes? Thanks!

  • Greg Knox asked 4 weeks ago
  • last active 3 weeks ago
0 votes
113 views

I want to reach 2 specific points:
1. Bar Chart – chart with view like digital chart but with centering like column chart. I cant use any of these because with first I cant centering point mark and with second I cant disable or change visibility of columns border.
2. Custom labels for one or more axis. For example, I have uniquely defined and limited range of double values for axis and I want to represents this values on axis labels as spcific text by relation value->string.
You can see example in the attahcments.
Is this even possible? And if possible, how can I achieve this?

0 votes
0 answers
81 views

Hello,
how can I offset the origin coordinate (0,0 – top left) of a BoxAnnotationViewModel to (0.5, 0)? Basically what I have is a path in my BoxAnnotation that describes an arrow and I want to set the arrow tip to a specific x position in my chart.

  • Roland D asked 1 month ago
  • last active 1 month ago
0 votes
107 views

From example, I know I can bind and generate X Y axes in view model.
I want the left and right Y axes value are exactly the same and just use label provider to change the

I can find something similar in forum.
https://www.scichart.com/questions/wpf/faq-how-to-have-two-yaxis-on-left-and-right-with-the-same-visiblerange-mirrored-yaxis

But I am not sure how to do the same thing using axisviewmodel

xaml:

view model

       public  ObservableCollection<IAxisViewModel> YAxes {get; set;}

       YAxes = new ObservableCollection<IAxisViewModel>();
       var yNumAxis = new NumericAxisViewModel
       {

            AutoRange = AutoRange.Always,
            DrawLabels = true,
            AxisAlignment = AxisAlignment.Left,
            TickProvider = new CustomTickProvider(5),
            TextFormatting = "0.0#",
            GrowBy = new DoubleRange(0.1, 0.1)
        };

        YAxes.Add(yNumAxis);

        var yAxis2 = new NumericAxisViewModel
        {
            Id = "SecondaryAxis",
            AutoRange = AutoRange.Always,
            DrawLabels = true,
            AxisAlignment = AxisAlignment.Right,
            TickProvider = new CustomTickProvider(5),
            LabelProvider = new CustomLabelProvider(10),
            TextFormatting = "0.0#",
            GrowBy = new DoubleRange(0.1, 0.1)
        };


        YAxes.Add(yAxis2);
0 votes
100 views

Hi, we got performance problems with 3D chart on UniformGridDataSeries3D when size of mesh is bigger than 400×400.
The rendering is fine, but it have weird behavior when controlling from mouse: rendering is lags behind mouse movement and it’s hard to rotate the surface accurate.

To reproduce it you can use SciChart_SurfaceMesh3DNonUniformData scichart example and set the surface size to 500×500 for example.

Perfectly we are planning to use 1500×1500 mesh but currently we had to downsample it to 250×250.

Is there is some workaround for this?
Thanks

1 vote
0 answers
140 views

Hi Sci Chart,

I am using WPF with MVVM.

What i want to achieve is by reading the rollover modifier current hit point data, when user click left click, i want to add VerticalSliceModifier in the graph based on the hit point.

Attach is my code from xaml and viewmodel.

I have two issues which are:
“if (DistanceSeriesData.SeriesInfo.Count > 0)”, i always get zero count of seriesinfo.

In DistanceVerticalLines?.Add(new VerticalLineAnnotation(), the added Distance Vertical Lines data did not reflect in graph.

0 votes
134 views

I downloaded your SciChart trial version. The download placed all you assemblies into:

C:\Program Files (x86)\SciChart\SciChart SDK\Lib\net452

and duplicated the assemblies into:

C:\Program Files (x86)\SciChart\SciChart SDK\Lib\netcoreapp3.0.

Then I download the SciChart examples from GitHub directly into Visual Studio and it created a repository at

C:\Users\Dell\source\repos\SciChart.Wpf.Examples\Examples

Then I tried to compile but the dependencies were not resolved in the project SciChart.Exmaples.ExternalDependencies. I get yellow warning signs next to all your SciChart assemblies (e.g. SciChart.DirectX). Please advise.

0 votes
166 views

Hi, I found that the text formatting of discontinous DateTimeAxis is not working in WPF
I put the following format in DateTimeAxis and it displays correctly but not in discontinous DateTimeAxis
TextFormatting=”dd-MM”
SubDayTextFormatting=”HH:mm”

0 votes
167 views

In following example, how do I then bind the dependency properties of the SplineLineRenderableSeries to the SplineRenderableSeriesViewModel? For example, I’d like to have a change of the IsSplineEnabled property of the view model trigger a rerender of the series.

Worked Example – CustomRenderableSeries in MVVM

0 votes
166 views

I’m developing a CustomRenderableSeries with several dependency properties that controls how the series is displayed. When one of these properties changes I’d like to invalidate the series and have it redraw. What’s the best way to do this?

0 votes
176 views

Hello!

I’m building an application where I need to display quiet a large number of charts next to each other.

In this app the user can select up to 16 devices at the same time, each device having 24 channels of measurement data.
So in the worst case there could be 384 charts visible at the same time.
Usually it’s more likely to be around 24 or 48.

The user will also be switching between different views to monitor the devices he’s working with so UI elements need to be reloaded and repopulated more than once.

I have realized that this might not be possible to do with SciChart as loading 24 charts on their own already takes about a second or two.

I already have placed a call to “SciChart2DInitializer.LoadLibrariesAndLicenseAsync().Wait();” in my startup part of my software.
The chart itself is quiet simple and it is placed within an ItemsControl to be populated as many times as required.:

<ItemsControl Grid.Row="1" ItemsSource="{Binding Path=Data}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<s:SciChartSurface
x:Name="sciChartSurface"
Margin="10"
s:ThemeManager.Theme="BrightSpark"
Background="White"
Style="{x:Null}">
<s:SciChartSurface.RenderSurface>
<s:XamlRenderSurface />
</s:SciChartSurface.RenderSurface>
<s:SciChartSurface.YAxes>
<s:NumericAxis
x:Name="reflectanceAxis"
AxisAlignment="Left"
Id="reflectanceAxis"
IsPrimaryAxis="True" />
</s:SciChartSurface.YAxes>
<s:SciChartSurface.XAxis>
<s:DateTimeAxis x:Name="timeAxis" Id="timeAxis" />
</s:SciChartSurface.XAxis>
<s:SciChartSurface.RenderableSeries>
<s:FastLineRenderableSeries XAxisId="timeAxis" YAxisId="reflectanceAxis" />
</s:SciChartSurface.RenderableSeries>
</s:SciChartSurface>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>

Is there any way that I can improve the loading performance even further?

Attached you can find a stripped down sample project which demonstrates the slow load times I’m experiencing.
There is also a picture attached where you can see that loading 24 charts blocks the UI thread for about 1.5 seconds.

I am using the latest SciChart version currently available (6.2.1.13304)

0 votes
180 views

Hello,

Is it possible to register a custom ViewModel to a CustomRenderableSeries with the SeriesBinding markup extension? If not, would it be possible to make a custom SeriesBinding object?

Thanks,
Paul

0 votes
156 views

Hello guys,
I am trying to activate a developer licence for SciChart.Wpf on a new computer.
I followed the activation process and the wizard is indicating that the activation succeeded with the state ‘licensed updates expired’ (since the licence has been purchased more than 1 year ago).
I still have the message ‘Sorry! Your trial of SciChart has expired…’ on the graph in Debug mode.
Is there anything I missed? Does the developer licence should be deactivated from a previous computer in order to make it work on a new one?
Thanks for your answers.

0 votes
155 views

I want to access the values of ScatterSeries3D.DataSeries for example, I want to have something like:

ScatterSeries3D.DataSeries.XValues, ScatterSeries3D.DataSeries.YValues or ScatterSeries3D.DataSeries.ZValues.

0 votes
199 views

I am using UniformHeatMapDataSeries to plot a heat map in WPF/C#. However, the data is very large in size and as a result it is throwing OutOfMemoryException while populating the first parameter value of this data series. which is a two dimensional array TZ (generic).

As per definition:

public UniformHeatmapDataSeries(TZ[,] zValues, TX xStart, TX xStep, TY yStart, TY yStep, IPointMetadata[,] metadata = null);

Here I am filling this array with double[,] data.

This error is happening due to TZ double[,] is filled with very big size of data going out of max defined range of double 2D array size. Please suggest if I can replace the values of double[,] with any other data type which allow larger data.

  • Anil Soman asked 2 months ago
  • last active 2 months ago
0 votes
192 views

Is it possible to plot a continuous vertical line as part of data point markers in line graph? I have used sprite to render text for data points. Now I want to draw a vertical line starting from data point till the peak apex to show which peak it is pointing to. The text labels in point markers are shifted to upward for some peaks to avoid collision and therefore there is a gap between peak apex and the point marker. So this requirement. I tried so far with OR symbol but it is displayed as a vertical dotted line when multiple OR symbols are placed one below another.

  • Anil Soman asked 2 months ago
  • last active 2 months ago
0 votes
227 views

Is there any way to have a FastLineRenderableSeries have more than one color?

I have several series sources with a minimum of eight series generate from them. Each source is unique (a file) and each signal (Displacement, Force, etc) is also unique.

To help the user identify which signal is which i’d like to apply something like the color coding used on the wire with a stripe when there are many conductors.

I’d like to use a drawing brush such as:

        <DrawingBrush x:Key="DrawingBrush" TileMode="Tile"
                      Viewport="0, 0, 16, 2" ViewportUnits="Absolute"
                      Viewbox="0, 0, 16, 2" ViewboxUnits="Absolute">
            <DrawingBrush.Drawing>
                <DrawingGroup>
                    <GeometryDrawing Brush="Red">
                        <GeometryDrawing.Geometry>
                            <LineGeometry StartPoint="0,0" EndPoint="7,0" />
                        </GeometryDrawing.Geometry>
                        <GeometryDrawing.Pen>
                            <Pen Brush="Red" Thickness="4" />
                        </GeometryDrawing.Pen>
                    </GeometryDrawing>
                    <GeometryDrawing Brush="Black">
                        <GeometryDrawing.Geometry>
                            <LineGeometry StartPoint="9,0" EndPoint="15,0" />
                        </GeometryDrawing.Geometry>
                        <GeometryDrawing.Pen>
                            <Pen Brush="Black" Thickness="4" />
                        </GeometryDrawing.Pen>
                    </GeometryDrawing>
                </DrawingGroup>
            </DrawingBrush.Drawing>
        </DrawingBrush>

But I bet that’s a performance hit and frowned on.

See attach bitmap for artists conception of potential appearance.

Any ideas hints or suggestions?

  • Doug asked 2 months ago
  • last active 2 months ago
0 votes
190 views

Hi,
Is there a property in XAML to display series name of each FastLineRenderableSeries? TIA

0 votes
0 answers
201 views

Hi,
I used Band Series Chart everything work fine but I see this error , even SciChart thrown exception but it still work
Could you please advise me this
[2020-11-12T15:19:42.331-06:00][1][ERROR][App.xaml.cs:40]System.NullReferenceException: Object reference not set to an instance of an object.
at SciChart.Charting.Common.Databinding.BandSeriesInfoToYValueConverter.Convert(Object value, Type targetType, Object parameter, CultureInfo culture)
at System.Windows.Data.BindingExpression.TransferValue(Object newValue, Boolean isASubPropertyChange)
at System.Windows.Data.BindingExpression.Activate(Object item)
at System.Windows.Data.BindingExpression.AttachToContext(AttachAttempt attempt)
at System.Windows.Data.BindingExpression.MS.Internal.Data.IDataBindEngineClient.AttachToContext(Boolean lastChance)
at MS.Internal.Data.DataBindEngine.Task.Run(Boolean lastChance)
at MS.Internal.Data.DataBindEngine.Run(Object arg)
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)

0 votes
0 answers
202 views

I have the following SciChart surface in my program:

<s:SciChartSurface
            Name="Chart"
            Margin="0,0,4,0"
            Padding="0"
            BorderThickness="0"
            GridLinesPanelStyle="{StaticResource SciChartBackgroundStyle}">
            <s:SciChartSurface.RenderableSeries>
                <s:FastLineRenderableSeries
                    x:Name="LevelSeries"
                    DataSeries="{Binding Series}"
                    ResamplingMode="None"
                    Stroke="{StaticResource LabelColor}"
                    StrokeThickness="1" />
            </s:SciChartSurface.RenderableSeries>
        </s:SciChartSurface.RenderableSeries>

         <!-- Axis and modifiers snipped for readability -->
</s:SciChartSurface>

In my ViewModel I have a public XyDataSeries<DateTime, short> Series property. We do custom decimation on zoom, so when the chart is zoomed, the Series is cleared and repopulated with Series.Append in chunks.

My issue is that some of the time, the final .Append does not trigger a redraw. The data is in the series, the mouse rollover works and I can “see” the data, but it isn’t drawn.

Forcing the redraw using ViewportManager.InvalidateElement(); works but i would obviously prefer to not have to do that.

I would estimate that this issue happens ~1/5 times.

I’ve attached a gif showing the issue.

0 votes
228 views

Kind regards, I need to build an application in C # for an Intel RealSense D415, I must capture the image of a person’s back to be able to view it in 3D, SciChart WPF SDK can be the solution to help me make this application? Thanks for the reply

0 votes
216 views

If I create a UniformGridDataSeries3D:

 new UniformGridDataSeries3D<float>(1, 3);

The 3D surface is blank. If x > 1 it draws correctly.

This is basically like a 2D histogram plot.

Before having to provide an example, is this a limitation of using a UniformGridDataSeries3D, and if so, is there a workaround?

0 votes
0 answers
184 views

I’m plotting data using BoxPlot, each plot is a separate BoxPlotRenderableSeriesViewModel object, this way I can specify the color for each. However, I can’t seem to find a way on how to make their widths uniform.

I tried the DataPointWidth property it it doesn’t seem to have any effect. Is there a way to achieve this?

I have attached a snapshot of the sample plot.

0 votes
0 answers
189 views

Is it possible to show a continuous vertical line as part of Data PointMarker in graph? We have managed to show text labels for our peaks using Data Points and point markers. We have used Sprite to display the TextBlock with peak labels. Now we need to show a vertical line starting from the label text up to the tip of peak. For readability we have kept a vertical space between the data point and the peak label. Hence sometimes it becomes difficult to find which peak points to which peak label. However there is no character to represent a long and continuous line. The OR character shows dotted line. Is there any other control we can use inside the sprite to show as a line?

0 votes
200 views

I’ve been beating my head over this for a while and I’m wondering if there’s something wrong with my implementation or whether there’s a bug in the annotationlabel.

I am running into a nullreferenceexception when I begin drag on an Axis AnnotationLabel attached to a VerticalLineAnnotation. An example code is below. This doesn’t seem to be an issue for non-axis labels.

I am able to drag once. When I begin my second drag on the label the crash occurs. This crash does not occur when the annotation line itself is dragged. The crash occurs when you click on the annotation label (at the axis) and drag it twice in succession.

Note — this issue doesn’t crop up when the annotation and label are declared in xaml. For my purposes however, I have been trying to create them programmatically. My actual code is a bit different, I add the label in the codebehind as opposed to the viewmodel, but this below gives the same outcome.

Edit: on further investigation, this seems to occur with annotationviewmodels specifically. Creating the annotation through the codebehind works fine. But creating it via an AnnotationsBinding and annotationviewmodel does not. I found the issue occurs when I set “ShowLabel” on the annotationviewmodel as well as when I add to the label collection.

var a = new VerticalLineAnnotationViewModel()
                {
                    X1 = someInitialVal,
                    XAxisId = "DateTimeXAxis",
                    YAxisId = "PressureYAxis",
                    DragDirections = SciChart.Charting.XyDirection.XDirection,
                    IsEditable = true,
                };

                a.AnnotationLabels.Add( new SciChart.Charting.Visuals.Annotations.AnnotationLabel() );
                Annotations.Add( a);
                RaisePropertyChanged( nameof( Annotations ) );
  • John Chow asked 2 months ago
  • last active 2 months ago
0 votes
259 views

Hello!

We have a SciChart plot application that a customer used to render 192 plots. The issue is that when so many series rendered is that the UI blocks on the initial redraw for about a second.

We have a SciChartSurface with RenderableSeries property bound to an ObservableCollection. We do use SuspendUpdates() when populating the ViewModel collection.

What is a good approach to either speed-up rendering or at least make the UI more responsive while all these plots are rendered?

Thank you in advance for any tips.

0 votes
253 views

I want to use ChartModifier.OnModifierMouseMove , I have declared as image “Cannot assign to OnModifierMouseMove because it is a method group”, then it gives an error. I have to how to use it

0 votes
0 answers
236 views

Hello.

When the “RotationAngle” is set for “PolarXAxis” in the range -180 to 0 degrees, the “HitTest” method returns a “HitTestInfo” instance with an invalid “DataSeriesIndex” value. In most cases, “DataSeriesIndex” differs by 1 from the position of the item in the “DataSeries” collection under the mouse cursor.

Please help me to solve this problem.

The attached project reproduces only this problem.

0 votes
0 answers
226 views

I want to use the SeriesSelectionModifier to select a series when I click on the line between points.

Using the SeriesSelectionModifier, I can select a series by clicking the mouse on the point.

However, when I click on the line between points, the SeriesSelectionModifier does not work and I cannot select a series.

How can I select a series even if I click on the line between points?

0 votes
275 views

Hi all —

I apologize if this is an inappropriate question, I only learned about SciChart yesterday; I do have some experience with .NET We have purchased a USB sensor from a small company. The sensor is top-notch, and we are very happy with its performance. However, the software offers no option to export the time series as CSV or any human-readable format. To add to the above, the software does not start unless one connects the instrument to the PC.

The software appears to be Sci-chart based; it displays measurements as time series and offers basic GUI which come with 2D SciChart objects. When saved, the data appears to get wrapped in a SciChart .Net object, dumped into a binary file, compressed. When the saved file is open, it’s uncompressed, SciChart objects get re-populated and displayed . We know about this b.c. we uncompressed one of the files and opened it with a hex editor. Most of the header was comprised of .NET and SciChart warnings, followed by what appears to be repeated patterns of numbers.. The time stamps appear to be in one of the “nanoseconds-since-the-creation-of-time” formats.

The company did not commit to provide a solution to export the time series as CSV, and we (understandably) do not have access to the source code. I understand that this is a long shot, but could there a method to deserialize data stored inside of a binary with a SciChart object? I do not know the structure, but i can save files with small N of data points (e.g. N=1), and I know what the data looks like when it’s open (although it’s rounded and re-processed, e.g. the nanoseconds since the creation of time). A file containing a single-timestamp measurement (8 channels) is about 4kB in size when uncompressed; most of it warnings and error messages.

Again, I very much apologize for this question, it may be inappropriate.

0 votes
334 views

Hi, on our data SciChart3DSurface seems a bit laggy while rotating camera, FPS is low. What are general way to improve SciChart3DSurface performance?

0 votes
267 views

Hi, how do I disable Visual Xccelerator Engine for SciChart3DSurface?
I tried with the following code

<s3D:SciChart3DSurface x:Name="View3D"  s:VisualXcceleratorEngine.IsEnabled="False"/>

But it gives compilation error:

Property ‘IsEnabled’ is not attachable to elements of type ‘SciChart3DSurface’.

So how do I generally enable/disable Visual Xccelerator Engine for SciChart3DSurface?

0 votes
272 views

Hi,
I’m using both modifier for our SciChartSurface’s. RubberBandXyZoomModifierexecutes on ExecuteOn=”MouseLeftButton” and ZoomPanModifierand executes on ExecuteOn=”MouseRightButton” . For touch I want the opposite behavior. Is that possible?

0 votes
0 answers
223 views

1、How to fix the scale of the X axis into 360 scales
2、I want to put 360 degrees in the direction, how can I rotate the table 90 degrees to the left and 0 degrees upward
3、How to make the X axis show only 0,90,180,270

0 votes
237 views

Hello!

I have a SciChartSurface with 193 series on it and my application needs to display a legend with 193 items. The requirement is that a legend should be located underneath the plot as a scrollable panel with items arranged in a wrap-panel fashion. The problem is that it takes a long time to render this many items because WrapPanel does not use Virtualization.

I found a 3-rd party control (https://github.com/sbaeumlisberger/VirtualizingWrapPanel) that implements virtualization in a WrapPanel. However, it is designed to work inside a ListBox/ListView and does not as an ItemPanelTemplate for SciChartLegend.

Is it possible to render LegendData in a custom control? I’ve noticed that LegendData is a ChartDataObject. However, when I bind its SeriesInfo property my ListBox is not populated.

Here is my XAML:

In my SciChartSurface I’ve added a modifier:

<s:SciChartSurface.ChartModifier>
                    <s:ModifierGroup>
                        <!--  Turn this legend off because we've got a custom one below  -->
                        <s:LegendModifier GetLegendDataFor="AllSeries" ShowLegend="False" />
                        <local:ErrorBarExclusionLegendModifier x:Name="mwErrorBarExcluder" />
                        <s:TooltipModifier />
                        <local:MouseClickChartModifier RightClickPosition="{Binding RightClickPosition, Mode=OneWayToSource}" />
                    </s:ModifierGroup>
</s:SciChartSurface.ChartModifier>

Then I declare a ListBox:

<ListBox
                Grid.Row="4"
                Grid.Column="0"
                Height="220"
                ItemTemplate="{StaticResource SciChartLegendItemTemplate}"
                ItemsSource="{Binding LegendData, ElementName=mwErrorBarExcluder, Converter={StaticResource SeriesConv}}">
                <ListBox.ItemsPanel>
                    <ItemsPanelTemplate>
                        <wtk:VirtualizingWrapPanel Orientation="Horizontal" />
                    </ItemsPanelTemplate>
                </ListBox.ItemsPanel>
            </ListBox>

Since I can’t bind ItemsSource to ChartDataObject I wrote a simple converter that extracts the collection of SeriesInfo objects:

public object Convert(object aValue, Type aTargetType, object aParameter, CultureInfo aCulture)
{
    ChartDataObject fSource = aValue as ChartDataObject;

    return fSource?.SeriesInfo;
}

What am I doing wrong?

Thank you in advance for your suggestions.

0 votes
0 answers
260 views

I want to create a custom modifier for a polar chart.
But I failed immediately!
First I wanted to add a simple 10×10 px ellipse.
But the ellipse doesn’t appear on the chart!

public override void OnModifierMouseDown(ModifierMouseArgs e)
{
    var translatedPont = ParentSurface.RootGrid.TranslatePoint(e.MousePoint, ParentSurface.ModifierSurface);

    var point = new Ellipse
    {
        Width = 10,
        Height = 10,
        Stroke = Brushes.White,
        StrokeThickness = 1,
        Fill = Brushes.Gray
    };

    ParentSurface.ModifierSurface.Children.Add(point);

    point.MeasureArrange();

    var leftCoordinate = translatedPont.X - point.ActualWidth / 2;
    var topCoordinate = translatedPont.Y - point.ActualHeight / 2;

    Canvas.SetLeft(point, leftCoordinate);
    Canvas.SetTop(point, topCoordinate);
...
0 votes
305 views

Is there a way to create a custom TooltipModifier.TooltipTemplate for Annotations?

I’m trying to find an example of one on the site or in the SciChart examples application but I’m not having any luck. Thanks!

I’d like to be able to pass an object to the tooltip’s metadata like with XySeriesInfo tooltip templates.

Thanks!

  • Greg Knox asked 3 months ago
  • last active 3 months ago
0 votes
335 views

Hello,
I have a LineRenderableSeriesViewModel and I want to be able to select the chart using possibly a VerticialSliceModifier, double click it, and then find the limits of the peak centred around the VerticalSliceModifier and shade the region underneath the curve. Finding the limits of the curve is ok, but how would I shade the region in?
Any pointers would be really useful.
Regards
Peter

  • pburland asked 4 months ago
  • last active 3 months ago
0 votes
338 views

Hi EveryBody,

I hope you are fine,

I am working on tablet windows with only one DataSerie vizualisation.

To increase the ergonomic of my application on DatapointSelection, I want to be able to click on any point in the scichart then the DataPoint corresponding to the X axes of my point click get Selected.

Is it possible? Can you help me please.

I sent a picture to explain you the needed functionnality.

Thank you very much,

Princy Andriampaniry

0 votes
361 views

Hello everybody,

I hope you are fine,

I am working with DatapointeselectionModifier on a tablet windows.

I want to be able to select multiple points without pressing Left Ctrl keyboard.
Can you help me please?

Thank you very much.

Showing 1 - 50 of 3k results