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

0 votes

I’m trying to set a property value from a property in my custom extension of BaseRenderableSeriesViewModel. Looking at the documentation, it seems this is what I need:


But I’m a little confused as to what it needs as an input, what exactly is the “ref Property”? Here’s what I’ve tried:

public class CustomEnumRenderableSeriesViewModel : BaseRenderableSeriesViewModel
    private float startY;
    public float StartY
        get { return startY; }
        set {
            SetValue<float>(ref startY, value, "StartY");

    // Tell SciChart what type of RenderableSeries you want to instantiate
    public override Type RenderSeriesType
        get { return typeof(CustomEnumRenderableSeries); }

public sealed class CustomEnumRenderableSeries : CustomRenderableSeries
    public float StartY
        get { return (float)GetValue(StartYProperty); }
        set { SetValue(StartYProperty, value); }
    public static readonly DependencyProperty StartYProperty =
        DependencyProperty.Register("StartY", typeof(float), typeof(CustomEnumRenderableSeries), new PropertyMetadata(0f));

but the CustomEnumRenderableSeries’s StartY isn’t getting set. I’m not exactly sure what the Type T parameter should be. Is it the type of the property (float in this case) like I have? What then is the property reference I should be passing?

  • Ken Hobbs asked 5 years ago
  • last active 5 years ago
0 votes

Because we have limited vertical space, I would like to change the position of the x-axis title.
Ideally, to the right of the x-axis values.
Using code behind, this was sort of possible, but we would like to do it using xaml.
Also, the code behind solution had problems when resizing the chart.
Is this possible?

0 votes
0 answers

In the chart, I may need programmally add one RenderableSeries, and add data into its dataseries. But how to fire the ‘OnPropertyChangeEvent’ programmaly for the lively added RenderableSeries?

In the example, a binding between dataseries in the view and a property in the model is created manually. Then we change the data and fire the ‘OnPropertyChangeEvent’ event in the model. How to achieve this affect programmally?

best regards

  • chunxi asked 6 years ago
  • last active 6 years ago
0 votes


I have made the chart vertical by changing X axis alignment to left and Y axis alignment to bottom. After changing like this, im not able to resize the box annotation using all four resize adorners. Only two working, other two resetting Y1 value. below is the code snippet.

         X1="{Binding TopDepth, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
         X2="{Binding BottomDepth, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
         YAxisId="Top" />
         AxisTitle="Depth [ft]"
         FlipCoordinates="{Binding FlipYAxis}"
         TitleStyle="{StaticResource AxisTitleStyle}" />
         TitleStyle="{StaticResource AxisTitleStyle}" />

Can you please let me know what i’ve missed?


  • Sync Kumar asked 6 months ago
  • last active 5 months ago
0 votes


I see one can set an optional PointMarker in FastErrorBarsRenderableSeries. I thought doing so would cause the markers to be drawn at the data points. But this isn’t happening. And in the ErrorBars demo code, you define a separate XyScatterRenderableSeries to draw the data points.

What’s the preferred way? Obviously I can use both an XyScatterRenderableSeries and a FastErrorBarsRenderableSeries, but I’d rather just have one if it can draw both.


  • yefchak asked 4 years ago
  • last active 4 years ago
0 votes

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.

2 votes

Hi Guys,

I am just wondering if you can help us with the following issue.
We are trying to create a scatter char. The data series set looks like :

public IDataSeriesSet<float, float> ChartDatafloat

The problem that we are having is that there are points that are missing on the chart when it gets generated. so, we would like if you guys could test with the points that I am attaching (scattercsv.csv) and figure out why this is happening… We have seen that points around 14 and between 2000 and 2050 in the Xaxis are not displaying.

<SciChart:SciChartSurface x:Name="SciChartSurface" SciChart:ThemeManager.Theme="BrightSpark"
                              DataSet="{Binding ChartDataXfloat, Mode=TwoWay}">

        <!-- Declare RenderableSeries -->
                        <Grid Height="7" Width="7">
                                <Path Data="M0,0 L10,10 M0,10 L10,0 M0,5 L10,5" Stretch="Uniform" Stroke="Blue" StrokeThickness="1"/>

        <!-- Create an X Axis with Growby -->
            <SciChart:NumericAxis VisibleRange="0,2800">
                    <SciChart:DoubleRange Min="0.1" Max="0.1"/>

        <!-- Create a Y Axis with Growby -->
                    <SciChart:DoubleRange Min="0.1" Max="0.1"/>


I am attaching as well an image that shows how the chart should looks like. I am only trying to display the blue points. So, chart number 1 displays all the points that I am attaching in the spreadsheet and chart number 2 is the one that I am trying to create with the same points and as you can see is missing some of the points.

Hope you can help us….

Thanks very much

0 votes


I have followed the 50 EEG example in creating a group of graphs which is populated using a listbox and a data template. The graphs are created and populated correctly. The issue arises when creating graph modifiers (eg Rollover, Zoom). Is there an issue with selecting these graphs or adding modifiers.

Thank You

0 votes

Is there an efficient way to append a subset of an array to a DataSeries? Manually looping with Append is slow (as expected). Iterating over an IEnumerable introduces overhead. I’ve read in the performance tips and tricks section that “Arrays have the biggest impact as these can be indexed using unsafe code”. The help documentation doesn’t list an Append overload specifically for an array so I assume the type is checked within the method.

I am reusing arrays whenever possible; however, my arriving data is not always the same length. In order to reduce allocations and garbage collection, I make use of Memory, Span, and ArraySegment elsewhere in my project. This allows me to pool and reuse memory. I have not found any DataSeries.Append overloads that would accept any of these types or otherwise allow me to specify the usable range of the array. Please let me know if I’ve overlooked something.

Thank you.

0 votes

Dear all,

I was wondering what is the chart recommand use for optimal performance on the following scenario :

  • What is the max number of point a chart can accept in a sceries of data ( my customer have nearly 10000 points to be display)
  • what is the max number of chart instance that can be visible at same time ? ( for instance user would like to see more that one chart on one screen

Thanks for those information


  • sc sc asked 3 years ago
  • last active 3 years ago
0 votes
0 answers

Hello again!
I’m working with new scichart version (5th august). In view XAML file I have this code snippet:

visuals:SciChartSurface Annotations="{Binding AnnotationCollection}"  SeriesSource="{Binding GraphicsCollection}" XAxis="{Binding XAxis, Mode=TwoWay}" YAxes="{Binding YAxisCollection}"  >

When I try to run the application, I get this NullReferenceException:

   в A. .Convert(Object value, Type targetType, Object parameter, CultureInfo culture)
   в System.Windows.Data.BindingExpression.TransferValue(Object newValue, Boolean isASubPropertyChange)
   в System.Windows.Data.BindingExpression.Activate(Object item)
   в System.Windows.Data.BindingExpression.AttachToContext(AttachAttempt attempt)
   в System.Windows.Data.BindingExpression.AttachOverride(DependencyObject target, DependencyProperty dp)
   в System.Windows.Data.BindingExpressionBase.OnAttach(DependencyObject d, DependencyProperty dp)
   в System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal)
   в System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value)
   в System.Windows.Data.BindingOperations.SetBinding(DependencyObject target, DependencyProperty dp, BindingBase binding)
   в System.Windows.FrameworkElement.SetBinding(DependencyProperty dp, BindingBase binding)
   в Abt.Controls.SciChart.Visuals.Annotations.LineAnnotationWithLabelsBase.VB()
   в Abt.Controls.SciChart.Visuals.Annotations.LineAnnotationWithLabelsBase.TB()
   в Abt.Controls.SciChart.Visuals.Annotations.LineAnnotationWithLabelsBase.OnXAxesCollectionChanged(Object sender, NotifyCollectionChangedEventArgs args)
   в Abt.Controls.SciChart.Visuals.Annotations.AnnotationBase.Abt.Controls.SciChart.Visuals.Annotations.IAnnotation.OnXAxesCollectionChanged(Object sender, NotifyCollectionChangedEventArgs args)
   в Abt.Controls.SciChart.Visuals.Annotations.AnnotationCollection.OnXAxesCollectionChanged(Object sender, NotifyCollectionChangedEventArgs args)
   в Abt.Controls.SciChart.Visuals.SciChartSurface.OnXAxesCollectionChanged(Object sender, NotifyCollectionChangedEventArgs args)
   в System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)

But if I change my xaml file this way:

visuals:SciChartSurface SeriesSource="{Binding GraphicsCollection}" XAxis="{Binding XAxis, Mode=TwoWay}" YAxes="{Binding YAxisCollection}" 
Annotations="{Binding AnnotationCollection}"   >

there won’t be any exceptions. I’ve attached project with exception below.

P.S. in the previuous version it works fine.

  • Egor asked 6 years ago
1 vote

I wonder how I can disable the x-Axis from automatically re-scaling when panning a series beyond the available data range? The only time when axes scales change should be when I modify the axes scales via mouse on the respective axis itself. But when I pan a series I do not want any changes in axes scale to occur. How can I accomplish that? Thanks

  • bbmat asked 6 years ago
  • last active 6 years ago
0 votes


we plan to generate reports containing SciChart charts, so we can re-use the chart components we show in our web-application. We did the same successfully in the past with SciChart for WPF.

So far I didn’t find any special support to generate high quality print output (and printing for js charts in general). Using the web-browsers print function the charts are rendered as bitmaps at screen resolution. In SciChart for WPF you provide a Vector Rendering Plugin which we used for printing (as described here

Is there already support for high quality rendering in SciChart.js or do you have plans for it and maybe a timeline when to expect it?

I found one issue when printing from the example charts ( After opening with a new browser window, on the first print the page content in the print dialog is most times empty but after reloading (F5) it is apparently always shown. I don’t know yet if this would be an issue when rendering to a PDF which we plan, but I think this should always work at the first time a page is loaded. Tested with current Chrome (88.0.4324.104) and Edge (88.0.705.56).

I wanted to attach a .png screenshot (435 KiB) but it didn’t work (a progress bar runs to 100% but then the file list is still empty tried file selection and drag&drop ). I think the issue should be understandable without a screenshot?

I could add the image using the edit function.



0 votes
0 answers


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

How to change IsEditable behaviour for a annotation ?

Requirement is to allow Editing (Allow resizing box annotation only on X1 or X2 or Y1 or Y2 side).

It must be possible to specify which sides we can resize. (IsEditable on X1 or X2 or (X1 and X2) all combinations ). Because I’m programmatically creating box annotations.

0 votes

I’m using Xamarin.iOS and the SciChart.iOS NuGet. When adding a LabelProvider to an axis the iPhoneSimulator with iOS 13.2 crashes without warning or exception back to the phone menu. This issue is not present on Android using the same API usage pattern.

This effect is not just in my own apps but can be replicated by running the latest Examples app on the same simulator. Examples which demonstrate the same behaviour include “Custom Theme”, Stacked Column Side by Side Chart”, “Using Theme Manager”, all of which set the LabelProvider in the source code.

Is this a known bug? Maybe an incompatibility with the latest version of Xamarin.iOS.

I noticed that this issue has been reported before.

This is a deal breaker for us at the moment as formatting axis labels is pretty crucial.

0 votes

How to programmatically add Scrollbars to MVVM instantiated axes?

I added DateTimeAxisViewModel and NumericAxisViewModel to my code. That works from so far. A way to add scrollbars i couldnt find a some tries.

Are there some ways to get this done? Maybe change the templates of the axes or the chart?

Best regards

1 vote

I saw in the examples where a “gain” and “loss” affected the color of a series. This took a bit of time; however, I figured out was you were doing and was able to implement it.

Please see the attached image. There are 2 sections in my series that are “Green” whereas the remainder of the series is gray. I’d like to be able to do 2 things ONLY to the green area.

  • Show point markers ONLY on the points in the green area.
  • Increase the stroke thickness.
0 votes

I purposely gave SciChart a bad axis ID with: fastLineRenderableSeries.YAxisId = “asdf”;

When I run my application within Visual Studio, Visual Studio throws this exception:

A first chance exception of type ‘System.InvalidOperationException’ occurred in Abt.Controls.SciChart.Wpf.dll. AxisCollection.GetAxisById(‘asdf’) returned no axis with ID=asdf. Please check you have added an axis with this Id to the AxisCollection

But when I run my compiled exe I don’t even get an unhandled exception error. SciChart simply doesn’t draw the chart. I want to catch this exception but my attempts to set up a try/catch have failed.

Is there a way for me to catch this sort of exception so I can log it?

  • Dave Doerr asked 6 years ago
  • last active 6 years ago
1 vote

I found a post on here regarding this topic but the link to the solution was a dead link.

I want to Autorange without affecting my zoom abilities. If I set AutoRange=”Always”, then I can’t zoom. If I set AutoRange=”Once”, then it does it the first time but I have to double click every time after that. What is the solution to this issue (This is an issue!). Fixing this would not be adding a new feature, it would be removing a problem within the code.

Edit: I think a solution would be to fire an event on DataSeries Changed. Is there an event that corresponds to this? I searched through the dependency properties and couldn’t find anything like that.

Edit: I used the Rendered event and called scichart.ZoomExtents(). I thought this would work, but it doesn’t resize properly either.

Edit: I want to add that I understand the use case for real time data, but I am looking at a snapshot. I can choose different snap shots but they don’t change once chosen. I need to update the range on each choice but then allow me to zoom in between.

Edit: I think that the scichart is being zoomed before the new dataseries is set. I can’t prove it, but that is what my gut tells me.

  • Ryan Woods asked 5 years ago
  • last active 5 years ago
1 vote

I’m reworking existing functionality to use SciChart. I need the resulting graph to look identical to original solution (or as close as possible).

In the screenshot you can see where I got so far (top) compared to the old solution (bottom). I got stuck trying to make the labels work.

I implemented a custom label provider as described here (I basically just took the CustomLabelProviderClass from there) I use the same list of labels as the old solution. What you see is as far as I got, using the following axis properties:

LabelProvider =”{Binding LabelProvider}”
TickLabelStyle=”{StaticResource AxisLabelStyle}”

The old graph does actually skip some of the values as well (about every other, unless I zoom in) but it still displays them with about double the density of the SciChart. Is there a way to make SciChart behave the same?

Also, I applied rotation transform on the labels to get them vertical. As you can see, now they stick into the graph. Is there a way to move them down a bit?

0 votes

I need someone to develop this chart for me and I will provide a JSON, for the data.
Please go to time line 3:22

I have been struggling in the documentation and if someone can create this chart for me, I will be more than happy to pay you.

The chart would have to be created for Swift 4 please.


1 vote

I didn’t see anything in any docs, so I am just wanting to verify this info…

Is this correct that you have to link in and ship the libSwiftCore (+ other swift libs) with an app using SciCharts on iOS? When I added the chart library to my app; the app crashed at startup with missing dynamic load of libSwiftCore.dylib on a real device (emulators run fine).

Enabling ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES in the build settings fixed this issue. But this surprised me that the SciChart library would actually require Swift.

Was this intentional; or did the library somehow pickup an unintentional reference somewhere….

0 votes

How do I know when user edited the text on TextAnnoation so the app can save it?
How to do the same for for Android and iOS version of SciChart?

0 votes

Dear all,

I am actually evaluation the chart control for my customer project and for that I start from the begiining by running all sample first to see how it looks like.

The first thing I have notice is that when you zoom an area on the basic graph for instance, the zooming factor is too deep and when you want to get back in zooming out a lilttle bit then you cannot unless you click on the reset zoom button.

I need to go to the essential of grid function based on my customer project because I do not have a lot of time to setup a simple POC.

Q1 : How to define the default zoom in factor ?

Q2 : when user zoom in inside an area, how to perform different step zoom out ?


  • sc sc asked 3 years ago
  • last active 3 years ago
1 vote

Current, I am working an WPF application which using SciChart to draw many charts including a Stacked column chart.
In my case, there are many StackedColumnRenderableSeries in a chart, one of them has less data points then others do and this chart will be rendered incorrectly in a strange way, espcially when I zoomed in and panned it.
You can get source code for my example project from attached files.

Have anybody ever got this issue before?

What is the best way to resolve it?

Thank you for your support!

The last data series has 1 data point
The last data series has no data point
The last data series has no data point (after zooming)

0 votes
0 answers

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.SetTargetProperty(animationChassis,new PropertyPath(ObjectModel3D.PositionProperty));

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;


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!

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 2 months ago
  • last active 2 months ago
0 votes

I’m try to generate a UIImage from a SCIChartSurface into a graphic context using the code below from a view that is not displayed on the screen. The image created is pure black, which indicates it did not draw. If I display the graph in a view on the devices screen, the graph draws correctly.

UIGraphicsBeginImageContextWithOptions(self.chart.bounds.size, NO, 0.0);
[self.chart drawViewHierarchyInRect:self.chart.bounds afterScreenUpdates:YES];
UIImage *chartImage = UIGraphicsGetImageFromCurrentImageContext();

Are there any special steps that are needed to draw into a graphic context?

0 votes

In Xamarin.IOS when you set the legend to Horizontal and Top it will create a legend at the top then allow you to scroll horizontally to see all your LineSeries. In Xamarin.Android when you have more Series than can originally fit on the screen, the legend malfunctions and takes up the entire screen. Picture will be attached.

1 vote


Great work, thanks a lot for this framework!

Could you provide an example of animated inserting of a new point? My goal is to implement interpolation between previous retrieved and last point on the real-time line chart.

0 votes

I am showing a dialog window with a ChartSurface in it. I have a context menu option to export to an image, and on window load I export to an XPS file. The dialog works fine if I do not use either feature, but once I do, I intermittently get an exception when showing the dialog. It appears to regularly take 3 instances of the dialog after the export feature is used to throw the exception, and the exception gets thrown twice the first time, threes times the second time, and so on. Again, if I do not use the export feature (no call to ExportToFile), I do not get any exceptions no matter how many times I show the dialog.

The exception message is “The provided DependencyObject is not a context for this Freezable. Parameter name: context”.

There are no other useful details in the exception from what I can see. Its all pretty abstract WPF stuff. The exported file/image seem to be generated accurately regardless of the exception.

I am using SciChart, Visual Studio 2017 Professional, C#, WPF

Any ideas?

0 votes


Sorry for my poor english 😐 I would like to achieve that showed on the attached sketch. I would like to align left side of columns to the tick and not the center.
And I would like to ask, is there any solution for different bar width? So the second bar on draw starts at 2019-08-01 18:00 and ends at 2019-08-02 00:00 but third bar is twice as width as second.
Thank you.

  • Hakan Sukur asked 12 months ago
  • last active 12 months ago
0 votes
0 answers

Update: Please remove my previous question, I did not input the code correctly

I have a collection of line charts that use FastLineRenderableSeries, and they all share the same View.xaml. I’m trying to change the font size for the Y-axis tick labels in the view but for some reason it gets ignored.

This is the view for the container for all the charts:

<UserControl x:Class="....SciCharts.MainView"
<DockPanel >
            <ItemsControl ItemsSource="{Binding ComponentCharts}" Grid.IsSharedSizeScope="True">
                        <UniformGrid Rows="2"/>
                            <ContentControl Content="{Binding}"/>

And this is the view for each individual line chart:

<UserControl x:Class="SciCharts.LineChartView"
    <converters:BooleanToCollapsedVisibilityConverter x:Key="VisibilityConverter"/>
    <converters:ReverseBooleanToCollapsedConverter x:Key="ReverseVisibilityConverter"/>
    <Style x:Key="AxisLabelStyle" TargetType="s:DefaultTickLabel">
        <Setter Property="Foreground" Value="Black"/>
        <Setter Property="FontSize" Value="2.0"/>
        <Setter Property="HorizontalAnchorPoint" Value="Left"/>
    <s:SciChartSurface RenderableSeries="{Binding LineChart.SeriesCollection}">
            <s:CategoryNumericAxis AxisTitle="Time" DrawMajorBands="False" AutoRange="Always" DrawLabels="True" />
            <s:NumericAxis DrawMajorBands="False" AxisAlignment="Left" AxisTitle="Rate" AutoTicks="True" AutoRange="Always" TickLabelStyle="{StaticResource AxisLabelStyle}"/>

I’m able to change the color and the anchor point using the code above, but the font size is ignored completely. Tried setting it under NumericAxis but same result. Please let me know what can I do to achieve this.

0 votes

I am developing an Android application for ELD. I have also explored the graph options SciChart is offering but I could not see a very similar graph to the image I have attached.
Please help me in choosing an appropriate type graph. It would be more helpful if you could name type of the graph I have attached.
enter image description here

0 votes

I create a chart like the example Vertically Stacked Axes. I add many channel,the chart would draw outside the view. It can’t scroll down or up to see other channel.
I have use NumericAxis scrollbar,but it only XAxis can scroll. Is there any method to solve it?

0 votes

To whom this may concern:

I am following up to an issue that I posted a few years ago:

I’ve attached a sample project that outlines what I am trying to accomplish. It is a simple scatter chart with randomized points in which I am trying to draw a rotatable ellipse annotation around the points.

The annotation inherits the “BoxAnnotation” class and replaces it’s template with an ellipse that is shaped to within the bounds of the annotation. This ellipse can be rotated by dragging the ellipse with the right-click button of the mouse. Upon doing so, in order to ensure the ellipse still maintains its shape when zooming in, the ellipse is converted to a geometric path. (Shown when the color of the ellipse changes from red to green.) Like this, when re-sizing the ellipse, it maintains its shape. After re-sizing, if the user wants to rotate the ellipse again, the original Ellipse UIElement re-surfaces and the Path UIElement is hidden. The user can then rotate the ellipse, which is in turn rendered back to a Path UIElement once again. The bounds of the annotation are modified to ensure the ellipse and its geometric path maintains its shape when switching between the Ellipse and the Path UIElements.

The issue is when re-sizing the annotation, and then attempting to rotate the ellipse again, the ellipse is clipped by the bounds of the annotation, even though “ClipToBounds” is set to false (in the code-behind). Unfortunately, I can’t find a pattern for which this occurs, and I have no solution to this issue. Examples of the clipped and non-clipped ellipses are shown in the attached images.

Hopefully the attached project is easy to understand. Can you please advise?

Thank you kindly!

— Ari

EDIT: Code attached as .ZIP file

  • Ari Sagiv asked 1 year ago
  • last active 1 year ago
1 vote

I’ve created a view with approximately 50 series, each containing ~200 datapoints.

I have noticed that rendering this with the legend showing, has a significant performance impact. I would expect the legend to have a cost, but I’m seing a big change in render time (the chart refreshes when the user checks a checkbox, so the performance has to be good).

I’ve added the legend using the following standard (I believe) xaml:

s:LegendModifier x:Name=”legendModifier”

When I set IsEnabled=”False” the performance improves significantly.

Does anybody have any hints to how performance can be improved?

Best regards

0 votes

Hi, SciChart team.
Our users can add many VerticalLineAnnotations to chart. Also they need to know what annotation is active. It is usefull for annotation removing for example.

What way schould I use for change visual style for selected annotation. By default selected annotation do not differ with not selected.

At this time I am modify AddAdorners RemoveAdorners(I am use MyCustom Annotaion inherited from VerticalLineAnnotation). And use different colors. But names of theese methods confuse me.

May be it is good idea to add methods like MakeSelected and MakeUnselected. Documentation in chm file is not helpfull for this situation.

0 votes

Hi, guys

My x axis is SCICategoryDateTimeAxis class type. And it’s limited by VisiableRangeLimit like:

[xAxis setVisibleRangeLimit:[[SCIDoubleRange alloc] initWithMin:SCIGeneric(firstItem – (lastItem – priorItem))
Max:SCIGeneric(lastItem + (lastItem – priorItem))]];

Also for scrolling my content inside chart:

SCIZoomPanModifier * zpm = [[SCIZoomPanModifier alloc] init];
[zpm setModifierName:@"PanZoom Modifier"];
[zpm setClipModeX:SCIZoomPanClipMode_ClipAtExtents];

Like a description SCIZoomPanClipMode_ClipAtExtents says:
“forces the panning operation to stop suddenly at the extents of the data” – but it’s not working constantly.
Sometimes it’s allow to scroll outside the range. Like on the attached image.

So my question is how to limit scrolling by min and max value?

Best regards,
Sushynski Andrei

0 votes

Please consider adding Footprint (MarketDelta) charts.

0 votes


I’m having trouble making the RolloverModifier TooltipLabels stay inside the graphs canvas.


As you can see on the left most graph the colored sqaures and some of the digits has fallen outside the graphs canvas.
Also what are the TooltipLabels rules for clustering together, and rules for which side of the RolloverMarker the labels should appear on?

Still having a problem here… After setting the ClipModifierSurface on the SciChartSurface to False the time axis no longer clips the TooltipLabels.
But the graph itself clips the TooltipLabels when the label gets to large.

How do I make the labels stay inside the graph? As there is a lot of free space to the right of the labels.

enter image description here

0 votes
0 answers


I wonder, if it’s possible to force the SciChartSurface control to resize itself depending on a size of the actual data area, given that axis are in the auto-range mode. For example, when the Y range is large than X range, the entire control resizes into the portrait orientation, thus keeping square pixels in the data area.

Thank you in advance!

  • corvex asked 6 years ago
  • last active 6 years ago
0 votes


I’be tried a small sample application where I instantiate a SciChart surface and some series.

I then added our Runtime License Key like it is explained here.

I gave the executable to two different persons. The first one got to see the charts but he got the “powered by SciChart logo”.
The second one wasn’t able to see the charts and got an “expired license” message.

I would understand seeing that if the user were running an application through Visual Studio or has a trial license, but I’m expecting them to be able to run the app normally when adding the Runtime License.

Any help would be appreciated.

Thank you very much.

Kind regards,

1 vote

Hey folks,

I have an Android device (CAT S40) running 5.1 on it. I am encountering an issue when pressing the home button or lock button. It seems that sometimes when the app is in pause or sleep my chart surfaces are destroyed and turn black. I have only seen this problem on this device. The only way to restore them is to restart the app. I researched this issue an found information on OpenGL context getting destroyed on pause. There is a setting in GLSurfaceView called setPreserveEGLContextOnPause. I am not sure if it is possible to access this setting from the SciChartSurface or not.

After seeing this, I tested the SciChart example app to see if the problem was isolated to my app, but it happened in the example app as well.
Again this is the only device I have seen this happen on and I’ve tested multiple devices.

Thanks for your help

0 votes

I am showing tooltip with CursorModifier. My tooltip bigger than SciChartSurface and I am using ClipModifierSurface=”False” in order to show whole tooltip. But in this case axis labels and scroll bar are on top of tooltip.
Described problem can be seen on Featured Apps > Scientific Charts > Oscilloscope Demo.
Is there any way to bring tooltip on top of chart surface?


0 votes

I’m trying to clear a SCIUniformHeatmapDataSeries after connecting it to a SCIChartSurface, but it is very slow and energy consuming. However, if I clear the data series before it is connected to the sci chart, then the clearing is pretty fast. How can I clear the data series after it is connected to the chart surface quickly? Do I have to make a new data series, clear it, and connect to the scichartsurface every time I want to clear a data series? This is for iOS by the way.
EDIT: code

for i in 0..<data.MATRIX_COLUMNS {
        for j in 0..<data.MATRIX_ROWS  {
            data.ecm2DMatrix[i][j] = Double.nan
            SCIUpdateSuspender.usingWith(charts.ecmSurface) {
      [i][j], atX: i, y: j)
0 votes

I’m using SciChart version, runtime v4.0.30319 and SciChartEx
I am having difficulty using LineArrowAnnotation and I need some help to solve my problem.

My problem is when I use the zoom and the size of the arrows.
When I zoom I need the length of the arrow not to change.
What process do I need to do to make the arrow the same size even when zoomed in?

. Below is a brief explanation of the program.
I made a linear graph where in certain points I show arrows down or up on the screen. (see Image01 below)
enter image description here ( Image01 )

With “HeadLength” and “HeadWidth” I can make the arrow head, the arrow body I am using “Y1” and “Y2”. (see Image02 below)
enter image description here ( Image02 )

When I zoom, I noticed that the arrow head does not change, but the length of the arrow does.
I need this length of arrow not to change like the head of the arrow. (see Image03 below)
enter image description here ( Image03 )

Finally, I apologize for my lack of knowledge of the products of your lordships.
And thanks for the attention paid.
Waiting for an answer.


1 vote


is there a way to update the X-Axis Values within an XYDataSeries?
What I found was the Update function to update the Y-Values.

But I can’t figure out how to update the X Values of the DataSeries.

The XyzDataSeries3D does support the functionality to update also the X Value.

But for the NonUniformGridDataSeries3D I can’t figure out how to update any point.

Maybe I am missing something, just let me know.

Best Regards,

1 vote
0 answers

I have some small chart to show trend data. It flickers when hovering cursor or zooming on it

1 vote

I am making a waterfall 3D chart like the Simple Waterfall 3D Chart of SciChart WPF Example Suite.

The Simple Waterfall 3D Chart is not displayed when changing the window size repeatedly.

After that, it is displayed when moving the screen. I do not know why.

Showing 1 - 50 of 3k results