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

0 votes
0 answers

As the title asks, is Unity 3D on the radar?

0 votes
0 answers


I cannot remove a shadow effect from AxisLabelControl (see attached image).

This is the style I am using:

<Style x:Key="CursorModAxisLabelStyle" TargetType="s:AxisLabelControl">
            <Setter Property="Background" Value="#FF202020" />
            <Setter Property="BorderBrush" Value="#FF8A8A8A" />
            <Setter Property="BorderThickness" Value="1" />
            <Setter Property="Opacity" Value="1.0"/>
            <Setter Property="Effect" Value="{x:Null}"/>

and this line is added to both NumericalAxis:

 s:CursorModifier.AxisLabelTemplate="{StaticResource CursorModAxisLabelTemplate}"

I am fine with shadow effects on other components, but a shadow on that particular label is annoying and seems unnecessary.

Any help would be appreciated!


0 votes
0 answers

I am using StackedColumnRenderableSeries and I have a problem when a data is displayed as it shows the incomplete graph as the second attached image.
Thank you

var xAxis = new DateAxis(this)
GrowBy = new DoubleRange(0.1, 0.1),
AxisTitle = “”,
AutoRange = AutoRange.Always,
TextFormatting = “MMM yyyy”,
DrawMajorGridLines = false,
DrawMinorGridLines = false,
AxisBandsStyle = new SolidBrushStyle(0xfff9f9f9),

0 votes

I use the surface.exportToBitmap () to get the picture, but the AxisMarker doesn’t match the actual display, and there’s no sharp arrow. How to solve?

0 votes

I want to draw one of the first picture, but FastLineRenderableSeriesBuilder found no fill color Settings, do you have other solution?

0 votes

I want to use code to intercept a picture, but find that the image is empty

    Bitmap src = surface.getDrawingCache();//save screenshot

how can I get the image of suface。

0 votes

When I insert a series of data, the hollow K diagram shows the error, and a line is displayed in the middle


My Settings are as follows:

candlestickSeries = sciChartBuilder.newCandlestickSeries()

How can I solve this problem?Please see the attachment for details。

0 votes

When I insert a series of data (more than 100 data)into the graph, the application crashes
Source code is as follows


The error is as follows

java.lang.UnsupportedOperationException: Data has been changed to a DataSeries which is unsorted in the X-Direction. Unsorted data can have severe performance implications in SciChart.

For maximum performance, please double-check that you are only inserting sorted data to SciChart. Alternatively, to disable this warning and allow unsorted data, please call dataSeries.setAcceptsUnsortedData(true).

I set up “dataSeries.setAcceptsUnsortedData (true)”, but still reported wrong.
how to solve it?

0 votes

How to position the legend in the botton of chart and make 2 column foreach tag?

0 votes
0 answers


I have two question on iOS Chart.

1.How can I customize the display value for tooltip generated by SCICursorModifier? I would like to set the following:

O: 99.35
H: 99.35
L: 98.30
C: 98.75

The text color of OHLC value should be set according to prev. close value.

2.The function setVisibleRange is working for SCIDateTimeAxis but not SCICategoryDateTimeAxis
Here is the initialization of the axis:

id axis = [[SCICategoryDateTimeAxis alloc] init];
axis.axisId = @”X1″;
[axis setAutoRange:SCIAutoRange_Never];
[axis setVisibleRangeLimitMode:SCIRangeClipMode_MinMax];
[surface.yAxes add:axis];

Set the visible range after receiving the data

SCICategoryDateTimeAxis *xAxis = (SCICategoryDateTimeAxis *)[[surface xAxes] getAxisById:@”X1″];
[xAxis setVisibleRange:[[SCIDateRange alloc] initWithDateMin: Max:]];`

I tried to replace the axis type from SCICategoryDateTimeAxis to SCIDateTimeAxis, it works well. Any idea about this?

0 votes
0 answers

When setting yAxis to have auto range enabled or when manually calling chartSurface.zoomExtents() after adding new data to chart, the top point are cropped (not shown in the chart). I have attached an image that shows this phenomenon (note: bottom part of the chart is cropped out of the image).

Below is full code of an Activity that reproduces the problem. I also updated the attached image that shows the result of the following code. As you can see both red points with y value of 1.1f are cropped out of the chart.

class MainActivity : AppCompatActivity()
    private val chartBuilder by lazy { SciChartBuilder.instance() }
    private val chartSurface by lazy { createChartSurface() }

    override fun onCreate(savedInstanceState: Bundle?)


        val background = findViewById<ViewGroup>(


    private fun createChartSurface(): SciChartSurface
        val surface = SciChartSurface(this)

        val xAxis = chartBuilder.newNumericAxis()
            .withAxisTitle("X Axis title")
            .withVisibleRange(0.0, 1.0)

        val yAxis = chartBuilder.newNumericAxis()
            .withAxisTitle("Y Axis title")
            .withVisibleRange(0.0, 1.0)

        Collections.addAll(surface.xAxes, xAxis)
        Collections.addAll(surface.yAxes, yAxis)


        return surface

    private fun createSeries(color: Int): FastLineRenderableSeries
        val lineData = chartBuilder.newXyDataSeries(Long::class.javaObjectType, Float::class.javaObjectType)

        return chartBuilder.newLineSeries()
            .withStrokeStyle(color, 2f, true)

    private fun addPoints()
        val xValues = LongValues(longArrayOf(0, 1, 2, 3, 4, 5))

        var lineData = chartSurface.renderableSeries[0].dataSeries as XyDataSeries<Long, Float>
        lineData.append(xValues, FloatValues(floatArrayOf(0.9f, 1f, 1.1f, 0.9f, 1.1f, 1f)))

        lineData = chartSurface.renderableSeries[1].dataSeries as XyDataSeries<Long, Float>
        lineData.append(xValues, FloatValues(floatArrayOf(0f, 0f, 0f, 0f, 0f, 0f)))
0 votes
0 answers

We are using the candlestick chart, and scrolling off the ends of the plotted data behaves very strangely:
– If I scroll slowly, the chart expands, anchored to the end of the data set (this is expected)
– If I scroll quickly, it lets me scroll beyond the end of the data set
– Once I have scrolled of the end of the data set, touching the screen again jumps back to the data set
– If I scroll slowly so the chart is expanding, and then release touch, the chart continues to move with inertia. If I clock again it jumpos back to expanding mode.

The combination of all these behaviours makes a very confusing and unsatisfying user experience.

Is there a way to change the behaviour? I had a look at but can’t find anything that might.

We have set:
xAxis is a SCIDateTimeAxis
xAxis.VisibleRange to desired range
xAxis.VisibleRangeLimit = range.Clone() where range is desired range
xAxis.VisibleRangeLimitMode = SCIRangeClipMode.inMax (I guess it should be called minMax but something broke in the build?)
xAxis.AutoRange = SCIAutoRange.Never

with chart modifiers:
– new SCIZoomPanModifier()
– new SCIZoomExtentsModifier()
– new SCIPinchZoomModifier()



0 votes
0 answers

I’ve had great success showing pixel values of a 2D image using the UniformDataSeries3D type. What I’d like to do now is display a subset of the pixel values in an image using a rectangular region of interest. However, it seems that the axes always start from 0. If I want to have the axes to not begin at value 0, will I have to calculate points for the whole image and zoom in? Or is there a way to set what the starting value of the axes are (while still indexing the values at index 0)

0 votes

I want to display a chart using a DateAxis as X-Axis. The data set contains values for each basic unit of chosen time base, e.g. for a time base of one month, I get 31 data points, with one value assigned for each day. I want the chart to display a label for each value assigned, but using automatic settings I get the following output:
enter image description here

I wanted to manipulate the ticks by setting the MajorDelta and MinorDelta properties, but it expects a value of type Date, and I’m not sure which value I should provide to get a timespan of 1 day, 1 hour etc.
I set EnableLabelCulling to false, but somehow it doesn’t seem to take any effect.

  • Anna Lazar asked 2 weeks ago
  • last active 2 weeks ago
0 votes

I have a dev box. This box had a full trial, which was later upgraded to a full (SC-WPF-2D-PRO) license. I can develop our software in debug mode fine. When I install our software from the build server I see “The Direct 3D Renderer TRIAL has EXPIRED”. This is software built in release mode on our build server which is fully licensed. If I run on a non Dev box it is fine.

This seems odd to me. I’d like to test our installed software on my PC, but can’t. Would this happen if I installed a 3rd party product that uses SciChart on a machine with a developer license.

Why is this happening?

  • Max Palmer asked 2 weeks ago
  • last active 2 weeks ago
0 votes

I crashed when I was quick to show and hide the content of the chart。

The source code is similar to the following:

public void show(){
if(!surface.getRenderableSeries().contains(lineUpSeries)) {
Collections.addAll(surface.getRenderableSeries(), lineUpSeries);
Collections.addAll(surface.getRenderableSeries(), lineDownSeries);
Collections.addAll(surface.getRenderableSeries(), line20Series);
Collections.addAll(surface.getAnnotations(), upTextMarker);
Collections.addAll(surface.getAnnotations(), downTextMarker);
Collections.addAll(surface.getAnnotations(), ma20TextMarker);
Collections.addAll(surface.getAnnotations(), upAxisMarker);
Collections.addAll(surface.getAnnotations(), downAxisMarker);
Collections.addAll(surface.getAnnotations(), ma20AxisMarker);
public void hide(){
if(surface.getRenderableSeries().contains(lineUpSeries)) {

error log:

java.lang.NullPointerException: Attempt to invoke interface method ‘boolean com.scichart.charting.visuals.annotations.IAnnotationPlacementStrategy.isInBounds(com.scichart.charting.visuals.annotations.AnnotationCoordinates, com.scichart.charting.visuals.annotations.IAnnotationSurface)’ on a null object reference
at com.scichart.charting.visuals.annotations.AnnotationBase.a(SourceFile:1207)
at com.scichart.charting.visuals.annotations.AnnotationBase.update(SourceFile:1105)
at com.scichart.charting.visuals.annotations.AxisMarkerAnnotation.update(SourceFile:246)
at com.scichart.charting.visuals.annotations.AnnotationBase.update(SourceFile:1083)
at com.scichart.charting.visuals.rendering.RenderSurfaceRenderer.a(SourceFile:327)
at com.scichart.charting.visuals.rendering.RenderSurfaceRenderer.a(SourceFile:218)
at com.scichart.charting.visuals.rendering.RenderSurfaceRenderer.a(SourceFile:132)
at com.scichart.charting.visuals.rendering.RenderSurfaceRenderer.onDraw(SourceFile:123)
at com.scichart.drawing.opengl.RenderSurfaceGL$a.onDraw(SourceFile:228)
at com.scichart.drawing.opengl.MyGLRenderer.b(SourceFile:293)
at com.scichart.drawing.opengl.MyGLRenderer.onDrawFrame(SourceFile:277)
at android.opengl.GLSurfaceView$GLThread.guardedRun(
at android.opengl.GLSurfaceView$

0 votes

The online Quick Start Guide includes the code :

PenStyle penStyle = new PenStyle(ColorUtil.Green, true, 2f);

This needs to be updated as PenStyle is now abstract.

Presumably it should now be:

PenStyle penStyle = new SolidPenStyle(ColorUtil.Green, true, 2f, null);

or similar.

0 votes

I set the theme is: SciChart_Bright_Spark, but in Android 4.4 mobile phone, chart often display the grid interval display black box, how to solve?

0 votes

Is it possible to draw a line chart over a heatmap chart?
I tried modifying one of the demos but the line chart draws a solid background over the heatmap?

0 votes

I am going through the showcase example for the spectrogram and I had a confusion on the sizeX and Y parameter of SCIUniformHeatmapDataSeries. Are these sizes as per the width and height of the surfaceChart ? I am going to plot an array of data. How do I determine the correct sizes for X and Y.
Moreover, is it necessary that the size array used for updating the dataSeries has to be (xSize*ySize)?

0 votes

Very simply, I am attempting to get the Examples to compile and upload to my Android phone. The first download had the examples, but not including Showcases. That version I successfully compiled and ran on an Android phone. Very happy with the professional look and feel.

Since then, I re-downloaded the examples including Showcase and gone through so many upgrades of Android Studio and Gradle and various supporting libraries (as prompted) I’ve lost track.

However, now I cannot compile. Please tell me what dependency is broken of config needs to be changed. Someone else must have been through this.

Thank you for your help.

Error message:
Gradle sync failed: Could not find core.aar (com.scichart.library:core:
Searched in the following locations:
Consult IDE log for more details (Help | Show Log) (9s 483ms)

I’ve also gone through and set Compile SDK Version to API 25, build tools version to 27. Then I get an error
Gradle sync failed: Could not find method android() for arguments [build_dpm8geo0q8d311u3f6njnup18$_run_closure10@1d7e526a] on root project ‘Examples’ of type org.gradle.api.Project.

MacOS 10.12.6, Android Studio 3.0 (updated from 2.3.x), JDK 1.8

0 votes

Hi, from the attached screenshot, we can see that the axis marker is somehow overlapped the chart content. I would like to ask how to resize the annotation so that we can fix this issue? thanks.

  • Ray Hung asked 3 weeks ago
  • last active 3 weeks ago
0 votes

I’m attempting to integrate some of the tutorial swift code into my app and I’m getting stuck on this error. Seems like some macro isn’t running.

“Use of unresolved identifier ‘SCIGeneric'”

Code is like this: lineDataSeries.appendX(SCIGeneric(i), y: SCIGeneric(sin(Double(i))*0.01))

I’ve done “import SciChart” and most things seem to work fine except this. Any ideas? Thanks

0 votes

is it possible to modify the corner radius of tooltips in SciChart Android?

  • Anna Lazar asked 4 weeks ago
  • last active 3 weeks ago
0 votes

I’m trying to integrate into a large scale solution where SciChart needs to be installed into a new csproj type of project system.

While I was able to make WPF + SciChart kind of compile by following this:

And more specifically this:

I cannot get it to properly use SciChart.DirectX package because SciChart uses very old SharpDX nugets (2.6.3).

The newer SharpDX nugets (4.0.1) do support new csproj / nuget 3.x properly, but since SciChart is locked into an older version I’m left unable to use it…

Are there any plans to update you own dependencies to a new SharpDX?

While for now I have samples runnign without DirectX, I don’t know how important it might become in the future…

0 votes

Hello all,

I have a problem with the assembly reference. Whenever I use Scichart (XAML) in a subfolder (Microlevel\Controls\SciChart\UserControlScichartFIFO.xaml) I get the following error:
The Type or Namespace “Charting” is not available in the Namespace “Mircolevel.Controls.SciChart”. (Maybe a assembly reference is missing)
If I use Scichart directly under the WPF Project I don’t get this error.
I have added the following Scichart assemblies:

In the XAML editor I added the following reference:

I don’t have any idea what I’am doing wrong, because the reference to other assemblies I have added are available in the subfolders.

Thanks in advanced.

0 votes


I´ve encountered following problem. My application should visualize variables of a machine. The user can select those variables an organize them in goups. For each group a SciChartSurface should be visualized with the selected variable as DataSeries.

Therefore I created a ViewModel for those groups. Holding them in a ObservableCollection wich is bound to an ItemsControl:

        ItemsSource="{Binding ChartViewModels}"
                <UniformGrid Columns="1"/>
            <DataTemplate DataType="traceControl:ChartViewModel">

                    <s:SciChartSurface Loaded="ChartSurface_Loaded" 


                      <!-- Some other stuff is also in here, modifiers and axissetup -->



There is a Refresh-Action. It does clearing the the ViewModel Collection and creating new ViewModels depending on the configuration and fill them in the ViewModel Collection.

If both actionparts (clearing and filling data) were executed together in for example the ICommand of a button, the memory footprint is increasing each time the refresh button is hit.

If the actionparts were executed one by one, e.g. a clear button and a fill button, everything is fine.

Do I miss something?

Thanks in advance!


p.s. I was not allowed to add Screenshots of dotMemory

0 votes

I am using SCICHART in my project on Xamarin.Android, but the default them show some themes but I would like to change the background grid color of the reports. Please any can help me ?.

1 vote

I have been reading about the performance of the heatmap chart. In some post I have found that the heatmap was going to be redesign to improve the performance, someone knows if this have happened?

My issue is that I’m trying to implement the waterfall example, but my 2d array is 50 x 31000 and when I try to render in realtime (with a loop of 500ms or below) it goes extremely slow and the whole app doesn’t respond.
When I switch the ResamplingMode to “Max” it improves a slightly, however the chart start to show some black gaps and color stripes like the data is not rendered properly.

If I run the same example with an smaller array like 100 x 100 none of this happens.

am I hitting the the boundaries of what can be done with the heatmap?

Are there any suggestions to improve the performance? (I have tried the StockThickness=1 and AntiAliasing=false)

If it is useful I can post some code.

2 votes

Hi SciChart Team,

Thank you all for your help and support.

I finally got the multiple symbols on the stock chart with reference to this and with this clear explanation
IAnnotation annotation = builder.newCustomAnnotation().withContent(R.layout.example_custom_annotation_view).withYAxisId(PRICES).withPosition(i, prices.getHighData().get(i)).withVerticalAnchorPoint(VerticalAnchorPoint.Bottom).build();

The above code worked for me and hope it helps to others too who all are trying this.


0 votes

Hi Yura,

Thank you for the answer here

I already did tried that way before also but was unable to display the custom annotations, even though I give the YAxisId the symbols are not visible on the chart…

I would be really grateful if you could help me out with this please

0 votes


Please verify my code and help me out where I am going wrong to display multiple symbols on a price chart of multipane stock charts…
The symbols are not getting displayed

private class PricePaneModel extends BasePaneModel {

    public PricePaneModel(SciChartBuilder builder, PriceSeries prices) {
        super(builder, PRICES, "$0.0000", true);

        // Add the main OHLC chart
        final OhlcDataSeries<Date, Double> stockPrices = builder.newOhlcDataSeries(Date.class, Double.class).withSeriesName("EUR/USD").build();            
        stockPrices.append(prices.getDateData(), prices.getOpenData(), prices.getHighData(), prices.getLowData(), prices.getCloseData());

        List<Double> maLowPoints = MovingAverage.movingAverage(prices.getCloseData(), 50);
        List<Double> maHighPoints = MovingAverage.movingAverage(prices.getCloseData(), 200);

        final XyDataSeries<Date, Double> maLow = builder.newXyDataSeries(Date.class, Double.class).withSeriesName("Low Line").build();
        maLow.append(prices.getDateData(), maLowPoints);
        addRenderableSeries(builder.newLineSeries().withDataSeries(maLow).withStrokeStyle(0xFFFF3333, 1f).withYAxisId(PRICES).build());

        final XyDataSeries<Date, Double> maHigh = builder.newXyDataSeries(Date.class, Double.class).withSeriesName("High Line").build();
        maHigh.append(prices.getDateData(), maHighPoints);
        addRenderableSeries(builder.newLineSeries().withDataSeries(maHigh).withStrokeStyle(0xFF33DD33, 1f).withYAxisId(PRICES).build());

        AnnotationCollection annotations = priceChart.getAnnotations();
        for (int i = 0; i < prices.size(); i++) {                
            if(maLowPoints.get(i) > maHighPoints.get(i) && maLowPoints.get(i-1) < maHighPoints.get(i-1)) {
                IAnnotation annotation = builder.newCustomAnnotation().withPosition(i, prices.getHighData().get(i)).withVerticalAnchorPoint(VerticalAnchorPoint.Bottom).build();
            else if(maLowPoints.get(i) < maHighPoints.get(i) && maLowPoints.get(i-1) > maHighPoints.get(i-1))
                IAnnotation annotation = builder.newCustomAnnotation().withPosition(i, prices.getHighData().get(i)).withVerticalAnchorPoint(VerticalAnchorPoint.Bottom).build();

                builder.newAxisMarkerAnnotation().withY1(stockPrices.getYValues().get(stockPrices.getCount() - 1)).withBackgroundColor(0xFFFF3333).withYAxisId(PRICES).build(),
                builder.newAxisMarkerAnnotation().withY1(maLow.getYValues().get(maLow.getCount() - 1)).withBackgroundColor(0xFFFF3333).withYAxisId(PRICES).build(),
                builder.newAxisMarkerAnnotation().withY1(maHigh.getYValues().get(maHigh.getCount() - 1)).withBackgroundColor(0xFF33DD33).withYAxisId(PRICES).build());           
0 votes


I am trying to pass multiple custom symbols both (up and down arrows) on multipane stock chart in such a manner that green symbols should be below OHLC candle and red symbols above OHLC candles but I cannot place it in proper manner

Can anyone please help me out with how to give positioning on X axis as it is an year scale?

0 votes


I have found out that calling suspendUpdate() and resumeUpdate() on a SciChartSurface object allocates memory that is never released. The allocations get bigger with more data in the chart.

I have created an empty Android project. I have added a SciChartSurface and a Button. Pressing the button suspends and resumes updates. You can then see in the Android Monitor that after each press of the button the memory consumption of the app increases. Since the chart is empty the allocations are very small but still noticeable. I have attached the zip of the example project.

Kotlin code of the Activity in the project:

class MainActivity : AppCompatActivity()
    override fun onCreate(savedInstanceState: Bundle?)

        val layout = findViewById( as ConstraintLayout

        val chartSurface = SciChartSurface(this)

        val button = findViewById( as Button
        button.setOnClickListener {
            val suspender = chartSurface.suspendUpdates()


I have tried to open a priority ticket, but I got the following error:

We encountered a problem (cross-site request forgery detected); please try again
Sorry, we encountered a problem (invalid department). Please start over.

0 votes

I am trying to integrate custom symbols from AnnotationsAreEasyFragment to MultiPaneStockChartsFragment but the symbols are not visible on price chart of MultiPane… can anyone please help me out with how to give X and Y axis in multipane price chart

1 vote

I was doing a bit of thinking about how I would be adding a horizontal line to my financial data series because my x-axis was in Date format. So I wrote this walkthrough with 2 functions to help any devs that come along after me.

My example is a bar chart with prices on the vertical y-axis and dates on the x-axis. the final product is posted below as a pic. All that is needed is to count the items in your date data series and you can position your bar relative to that.

my dates were in this object array and I just counted the array to get my bearings.

let totalBars = lastPriceList.count        //  holds number of bars in my price object
let startBar = totalBars - 100             //  this will make my line 100 bars long
let sellPrice = lastBar?.shortEntryPrice   //  here is the price level of the line I want to plot

then I passed that to this function to get a horizontal line

addTradeEntry(SignalLine: sellPrice!, StartBar: startBar, EndBar: totalBars)

here are the 2 functions that do all of the work

private func addTradeEntry(SignalLine: Double, StartBar: Int, EndBar: Int) {

    let horizontalLine1 = SCIHorizontalLineAnnotation()
    horizontalLine1.coordinateMode = .absolute;

// lower number pushes to left side of x axis
    horizontalLine1.x1 = SCIGeneric(StartBar)   
// higher number pushes bar right of x axis
    horizontalLine1.x2 = SCIGeneric(EndBar)    

// the position on y (price) axis
    horizontalLine1.y1 = SCIGeneric(SignalLine) 
    horizontalLine1.horizontalAlignment = .center

    horizontalLine1.isEditable = false = SCISolidPenStyle.init(color:, withThickness: 2.0)
    horizontalLine1.add(self.buildLineTextLabel("Sell \(SignalLine)", alignment: .left, backColor: UIColor.clear, textColor:

this one formats the text

private func buildLineTextLabel(_ text: String, alignment: SCILabelPlacement, backColor: UIColor, textColor: UIColor) -> SCILineAnnotationLabel {
    let lineText = SCILineAnnotationLabel()
    lineText.text = text = alignment = backColor = textColor
    return lineText
1 vote

I’ve been looking for the documentation of how to customize the look of the chart. I have a black/dark gray checker pattern that seems to be the default. I would like to:
1. Change the background to white, no checkerboard pattern
here is the documentation for chart background but it does not show me how to change it to white.
I have found through experimentation the I can call


But that just changes the axis background color

2. Make the text larger on the axis.
here is the documentation for the axis
I see these lines that were provided but they won’t compile because Xcode doesn’t know what defaultFontSize is and there are no other references to it and I still don’t see a way to set the size.

textFormat.fontName = SCSFontsName.defaultFontName
textFormat.fontSize = SCSFontSizes.defaultFontSize

I think it would be helpful to create a walkthrough for iOS that shows how to customize the background and axis. I’ve looked through the samples provided but the files are huge and I get lost trying to figure it out.

0 votes
0 answers

I am synchronizing multiple scichart surfaces via shared VerticalChartGroup id and using a shared ViewPortManager. I also share MousEeventGroup.

Everything works fine exact for one issue:

I declare the modifier in xaml like this:

RubberBandXyZoomModifier ReceiveHandledEvents="True" IsAnimated = "False" IsXAxisOnly = "True" ExecuteOn = "MouseRightButton"/>

When using RubberBandXyZoomModifier I can select an x-axis zone and the zone will be zoomed in on all charts as long as the mouse pointer resides within the chart on which I zoom. For example when I right-click somewhere within the chart and drag the mouse to the right to choose a zone which to zoom in on and then release the right mouse button all synchronized charts zoom perfectly fine but ONLY if the mouse pointer resides within the chart upon release of the right mouse button.

This is a problem when I want to zoom in on an area that includes the very last data point that almost touches the y-axis that resides on my right side of the chart. Oftentimes I just want to quickly zoom and then release the mouse button when the mouse moves beyond the chart surface to the right. What happens in such event is that only the chart zooms on which I initiated the zoom or at other times only 2 out of the 4 synchronized charts zoom. Only when the mouse pointer resides within the chart on which I perform the zoom upon releasing the right mouse botton will the zoom be performed on all synchronized charts.

I believe this is a bug given that the chart on which the zoom is performed always zooms regardless of where the mouse pointer resides upon release of the right mouse button?

0 votes
0 answers

Performance degrades at a much higher rate when adding FastBandSeries (with multiple axes) when compared to FastLineSeries (with one Y-Axis)

I have this demo project that shows the rendering stuttering that occurs when panning the FastBand Chart. To ensure that this is not some performance hit of purely having multiple Y-Axes, you can simply add one series and the behavior persists. (As well as I know there are examples with multiple Y-Axes with line series that are blazing fast).

I would really like to get to the bottom of this as the one chart type is dragging down the performance of our product overall.

Below the demo project is attached.

It has been 3 weeks since I’ve posted with no input or feedback — quite unacceptable.

0 votes
0 answers

If you have multiple axes it appears that the order given isn’t honored on the screen.
If signals A, B, C, D are inserted into a list (inserting each item at the zeroth index) the resulting list is D,C,B,A. The order of the list is ignored and order observed is incorrectly: A,B,C,D. The order of the series/y-axes should reflect the order of the list (not the order in which they were inserted).

The following example has been added which shows this. (Clicking “Insert Signal at beginning” multiple times).

Currently we are using a work-around for which any list change, all signals are removed and re-added in the desired order to get the desired result. This is quite slow and causes flickering and flashing of elements on the screen.

Its been 3 weeks since I’ve heard any response..

0 votes

As the name suggests, does the Heatmap (specifically the new UniformHeatmap in v5) respect the ResamplingMode? And if not, can it? 🙂

Basic tests here seem to indicate that it doesn’t. I am displaying large quantities of data, and I need to have control over the resampling algorithm as the user zooms out.


0 votes
0 answers


I am having an issue with the supplied DataPointSelectionModifier for the Polar Chart. The multiselect and drag function works properly.

However, I want to be able to also select a single point, or multiple singular points using the ctrl key + clicking on a point. This works for the X/Y chart, but not Polar. Could there be a setting I am missing?

Please let me know if this is enough information to go by, and the question is clear.

Thanks much,

0 votes


any plans to support xamarin forms in the future.

  • SPS asked 2 months ago
  • last active 2 months ago
0 votes


i’d like to style my major and minor grid lines so that they are not visible over the whole width of the chart but only in the center.
I tried to asign them a LinearGradientBrush, but that did not show the Gridline at all, clipping did not change anything on the visual appearance of the Gridlines. Are these stylings not supported for grid lines?

My styling of grid lines and axes look as the following:

<Setter Property="MajorGridLineStyle">
        <Style TargetType="{x:Type Line}">
            <Setter Property="Stroke" Value="DarkRed" />
            <Setter Property="StrokeThickness" Value="1" />
<Setter Property="MinorGridLineStyle">
        <Style TargetType="{x:Type Line}">
            <Setter Property="Stroke" Value="Gray" />
            <Setter Property="StrokeThickness" Value="1" />
            <s:NumericAxis VisibleRange="{Binding ScaleBarRange}"
                           Style="{StaticResource ScaleStyle}">
            <s:NumericAxis Visibility="Collapsed"
                           DrawMajorGridLines="False" />

I attached an image that shows approximately how i’d like it to be and i already have a workaround using two surfaces overlayed over each other, but that one i’d really like to get rid of.
I’d be thankful for a hint that allows me to individually crop/clip grid lines.


0 votes

I add a LineAnnotation programmaticly to my surface and want to readjust it just like in the Examples Suite via clicking and draging the ends of the annotation.
As long as i dont use a Theme everything works fine. But when applying a custom theme the Manipulation points are not there anymore (and not only visualy, clicking at the end of the line also does not work. Furthermore the mousecursor does not change to a cross when hovering above the annotation end).

This is my Custom theme code:

<ResourceDictionary  x:Class="Reprocess.SciChartDisplay.CustomTheme"

<!--  *************************  -->
<!--  Colors and Brushes  -->
<!--  *************************  -->

<!--  Chart Brushes  -->
<SolidColorBrush x:Key="TickTextBrush" Color="Black"/>
<SolidColorBrush x:Key="MajorGridLineBrush" Color="LightGray"/>
<SolidColorBrush x:Key="MinorGridLineBrush" Color="LightGray"/>
<SolidColorBrush x:Key="SciChartBackground" Color="White"/>
<SolidColorBrush x:Key="GridBorderBrush" Color="#102A47"/>
<SolidColorBrush x:Key="GridBackgroundBrush" Color="Transparent"/>
<SolidColorBrush x:Key="RolloverLineBrush" Color="#33FD9F25"/>
<SolidColorBrush x:Key="CursorLineBrush" Color="#996495ED"/>
<SolidColorBrush x:Key="RubberBandFillBrush" Color="#33333399"/>
<SolidColorBrush x:Key="RubberBandStrokeBrush" Color="#77999999"/>
<SolidColorBrush x:Key="LegendBackgroundBrush" Color="AliceBlue"/>

<SolidColorBrush x:Key="LabelBackgroundBrush" Color="#AA6495ED"/>
<SolidColorBrush x:Key="LabelBorderBrush" Color="#FF6495ED"/>
<SolidColorBrush x:Key="LabelForegroundBrush" Color="Black"/>

<SolidColorBrush x:Key="TextAnnotationForeground" Color="#EEEEEE"/>
<SolidColorBrush x:Key="TextAnnotationBackground" Color="#AA6495ED"/>

<Color x:Key="AxisBandsFill">White</Color>

<!--  Default Series Colors  -->
<Color x:Key="UpWickColor">Gray</Color>
<Color x:Key="DownWickColor">Gray</Color>
<SolidColorBrush x:Key="UpBodyBrush" Color="Gray"/>
<SolidColorBrush x:Key="DownBodyBrush" Color="Gray"/>

<Color x:Key="UpBandSeriesLineColor">#22117711</Color>
<Color x:Key="DownBandSeriesLineColor">#22111111</Color>
<Color x:Key="UpBandSeriesFillColor">Black</Color>
<Color x:Key="DownBandSeriesFillColor">Red</Color>

<LinearGradientBrush x:Key="MountainAreaBrush" StartPoint="0,0" EndPoint="0,1">
    <GradientStop Color="Gray" Offset="0"/>
    <GradientStop Color="#000710" Offset="1"/>

<Color x:Key="MountainLineColor">Black</Color>
<Color x:Key="LineSeriesColor">Black</Color>
<Color x:Key="ColumnLineColor">#11FFFFFF</Color>
<SolidColorBrush x:Key="ColumnFillBrush" Color="#11FFFFFF"></SolidColorBrush>

<Brush x:Key="OverviewFillBrush">White</Brush>

<Brush x:Key="ScrollbarViewportBackgroundBrush">White</Brush>

<LinearGradientBrush x:Key="DefaultColorMapBrush">
    <GradientStop Offset="0" Color="White"/>
    <GradientStop Offset="0.5" Color="White"/>
    <GradientStop Offset="1" Color="White"/>

Any suggestions?

  • Andre asked 2 months ago
  • last active 2 months ago
0 votes

SetRuntimeLicenseKey not available!

  • Son Vu asked 2 months ago
  • last active 1 week ago
0 votes

The issue I’m having is that I seem to be running out of memory for 3D charts after a certain data size. What I will see is either my chart never renders at all or on occasion the entire application will crash (due to accessing out of bounds memory in the native dlls.)

I am using a SurfaceMeshRenderableSeries3D with a UniformGridDataSeries3D(int, float, int). With smaller sizes such as 320×240 (X,Z) I get results, but larger sizes such as 640×480 (X,Z).

This issue only seems to happen when compiling to 32-bit. I have seen the other questions regarding how AnyCPU is compiling to 32-bit. Some of our customers have to use 32-bit so I would like to know what the expected footprint is to hopefully try and work around it.


2 votes


This is my data structure which needs to be plotted using XyScatterRenderableSeries:

public class Measurement
        public Color Color { get; set; }
        public double X { get; set; }
        public double Y { get; set; }

I need to plot a list of measurements. It can be done in one series but each point color needs to be read from measurement data. To achieve that I’ve used a custom PaletteProvider and the result is satisfactory:

single series

It looks good but there is a huge problem with a performance. If I try to pan, zoom etc. the application horribly slows down.
Also I’ve tried to group measurements by Color and then plot a couple of series with specified color but the result is the same.

I am attaching a simple application which shows the problem.
Hope anyone can help me.

Best regards,

0 votes


InvalidatateParentSurface does’t seem to update the text in the heatmap cell however the change seems to be detected and the color value is getting updated. Can you please suggest how to fix this?

Attached is a sample.


  • mijothomas asked 2 months ago
  • last active 2 months ago
0 votes

When I crate a chart in a grid, the chart’s width fills the available horizontal space, but the vertical height of the chart is limited to about 150 pixels.
I don’t want to explicitly set the height but I can’t see what’s causing this problem. Although I’ve solved it in a couple of places it seems to annoyingly recur.

Showing 1 - 50 of 2k results