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

0 votes
0 answers
4 views

Hello 🙂

We have a chart setup like in the Custom Overview Control example. The RenderableSeries property of both charts is bound to the same ObservableCollection of IRenderableSeries. So if I change a property of the series like the thickness or point marker the change is visible in both charts accordingly.
Is there an easy way to accomplish that the series is drawn only with default thickness and without a point marker in the overview chart but with a point geometry and thickness in the main chart ?

Thank you.

0 votes
0 answers
5 views

Hi all,

I’m currently evaluating SciChart for use within our company. While trying to preserve our current chart look and feel, I noticed that the border settings for the GridLinesPanelStyle do not seem to be working.
I was just following the theming and styling tutorial, where a border is added to the GridLinesPanel and is clearly visible in the screenshot of the theming and styling demo in the tutorial. After noticing this, I opened up the demo application myself and noticed that also in the demo the border is not showing up.

Is this a known issue? And if so, what is a possible work-around for this?

Thanks in advance,
Cédric

0 votes
0 answers
8 views

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
0 answers
13 views

We have annotations placed based on mouseposition. To snap the annotation to the position of the datapoints, we use IDataSeries.FindClosestPoint(..) method to step to the nearest point, then applying it to the “X1”-property of the belonging annotation. This works well for most of the Series, but it fails for

XyDataSeries<int, double>

error:

InvalidCastException Specified cast is not valid.

Is this a known issue, any work-arounds for this ?

0 votes
0 answers
16 views

We have lots of use cases where livedata is appended to exisiting series. The data has gone through algorithms, is not time-based and so is unsorted. Better said, it’s scientific data, for e.g. Bode-, Nyquist diagrams
Can we make the SeriesValueModifier style so it places the latest value also at the x-position ? Currently we have CustomAnnotations for this, which seems a clumsy work-around.

0 votes
0 answers
22 views

When calling SCIThemeManager.ApplyTheme(Surface, SCIThemeManager.SCIChart_Bright_SparkStyleKey); within a the code-behind running on the iPhoneSimulator running iOS 13.2, the iOS system throws an Objective-C exception with the following details:

Foundation.MonoTouchException: 'Objective-C exception thrown.  Name: NSInternalInconsistencyException Reason: applyThemeProvider: must be implemented in subclass

Although the exact same pattern works without issue on the corresponding Xamarin.Android project and the examples that call this line seem to be OK too, it is not clear from any documentation what this issue could be. Any advice would be appreciated.

1 vote
0 answers
36 views

I am trying to modify the 3D Charts > Tooltips and Hit Test 3D Charts > Series Tooltips 3D Chart example to change the colour of the tooltip crosshairs to red. By crosshairs I mean the green lines in the image attached.

Green Crosshairs

I modified SeriesTooltips3DChart.xaml by adding:

    <UserControl.Resources>
        <Style x:Key="MyCrosshairOverlayStyle" TargetType="Line">
            <Setter Property="Stroke" Value="Red" />
            <Setter Property="StrokeThickness" Value="2" />
        </Style>
        <Style x:Key="MyCrosshairProjectionStyle" TargetType="t3D:CrosshairLines">
            <Setter Property="CrosshairOverlayStyle" Value="{StaticResource MyCrosshairOverlayStyle}" />
            <Setter Property="ProjectionMode" Value="Crosshair" />
        </Style>
    </UserControl.Resources>

and modifying the TooltipModifier3D element:

<t3D:TooltipModifier3D CrosshairMode="Lines" CrosshairPlanesFill="#33FF6600" CrosshairProjectionStyle="{StaticResource MyCrosshairProjectionStyle}" />

I expected this to apply the coloured lines but it did not. What have I misunderstood?

0 votes
0 answers
23 views

Hi,

I have the BoxPlotDataSeries chart with x-axis range from 0 to 6 and y-axis range from 0 to 100. I found that box width is too large and all the boxes occupied the whole chart. I would like to reduce the box width size. I have tried with DataPointWidth but its not working. Please let me know can we change the size of the box plot chart.

Thanks,
Senthil

0 votes
27 views

Is there any way to reduce the number of data points rendered on graph based on user’s screen resolution?

Thanks.

0 votes
35 views

Hello 🙂

Is there a performance difference between LineRenderableSeriesViewModel and FastLineRenderableSeries ?
So is it better to use ObservableCollection<IRenderableSeries> RenderableSeries = new ObservableCollection<IRenderableSeries>();
RenderableSeries.add(new FastLineRenderableSeries());and bind in XAML RenderableSeries="{Binding RenderableSeries}" or to use ObservableCollection<IRenderableSeriesViewModel> RenderableSeriesViewModel = new ObservableCollection<IRenderableSeriesViewModel>();
RenderableSeriesViewModel.add(new LineRenderableSeriesViewModel()); and bind in XAML RenderableSeries="{s:SeriesBinding RenderableSeriesViewModels}" ? Or is there no difference ?

Thank you

0 votes
0 answers
35 views

Hello,

I currently have a line chart that colors individual segments of the line different colors using the PaletteProvider and point metadata. I’ve been attempting to add an EllipsePointMarker to the point, and would like to have the fill be the same color as the line itself.

Is there a simple way to set the fill based on the point metadata as well?

Thanks in advance.

Aaron

0 votes
0 answers
28 views

My X Axis is a TimeSpanAxisViewModel but I’d like to be able to toggle between TimeSpan and DateTime to show elapsed time versus actual time.

For example, the axis could read 00:00:00 to 01:30:00 with TimeSpan but then I could toggle the labels to read 3:45PM to 5:15PM, if the starting time was 3:45PM.

Is there a way to provide a starting DateTime and have it used on the axis labels in place of TimeSpan values?

Thanks!

0 votes
37 views

I have a custom modifier class that extends RubberBandXyZoomModifier and overrides OnModifierMouseUp and OnModifierDoubleClick. When the user mouses up after zooming, is there a property or best practice of determining if the chart is zoomed in or not?

I’m wanting to disable/enable certain features based on the chart being zoomed in or not.

Below is my custom class…

public class CustomRubberBandXyZoomModifier : RubberBandXyZoomModifier
    {
        public override void OnModifierMouseUp(ModifierMouseArgs e)
        {
            Console.WriteLine("MOUSE UP");

            // Determine if the chart is zoomed in or not

            base.OnModifierMouseUp(e);
        }

        public override void OnModifierDoubleClick(ModifierMouseArgs e)
        {
            base.OnModifierDoubleClick(e);

            Console.WriteLine("DOUBLE CLICK");

            // Determine if the chart is zoomed in or not

            ParentSurface.ZoomExtents();
        }
    }
  • Greg Knox asked 1 week ago
  • last active 3 days ago
0 votes
36 views

Hi,

We are integrating Sci chart 2D (With multi color data points based on conditions – EXtremeScatterRenderableSeries) for our application.

It worked fine. However, we are not able to see the Legends with the colored range. (Example: 0 to 50: Blue. 51 to 100 Green …Etc.).

Please find the attached file and suggest the solution for this.

Thanks in advance.

0 votes
54 views

A runtime error is thrown when trying to pan a line render series with an x-Axis of type CategoryDateTimeAxis:

System.AccessViolationException
HResult=0x80004003
Message=Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Source=
StackTrace:

The output in VS 2019 produced the following:

An unhandled exception of type ‘System.AccessViolationException’ occurred in SciChart.Data.dll
Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

I use the new 6.x beta version with the new render engine.

No other stack trace is available, it only points to [External Code]

Any idea what might be going on?

Rendering with an x-Axis of type DateTime works just fine, the runtime error only pops up after I changed to CategoryDateTimeAxis.

  • bbmat asked 1 week ago
  • last active 6 days ago
0 votes
55 views

I have several series on a surface and currently use the Rollovermodifier. It highlights the datapoint on each series that intersects with the current vertical line of the RolloverModifier. However, I don’t seem to be able to display the corresponding y-values on the Y-Axis. How can I accomplish such? Is there any easy way to show the y-value of each series on the y-Axis that intersects with the vertical line of the Rollovermodifier?

  • bbmat asked 1 week ago
  • last active 3 days ago
0 votes
61 views

Just purchased and am trying to setup in application and i still get you have zero days left of trial. Attaching pictures. followed instructions here https://www.scichart.com/activating-scichart/

Update used the licensing wizard to activate as first time i activated online. After using licensing wizard it works. but what happens when i deploy application since i had added to my code the set license key?

  • John asked 1 week ago
  • last active 1 week ago
0 votes
41 views

I would like to add an image or icon to the bottom of the Vertical Line Annotation, where the AnnotationLabel is.

Is there a way to do this using the StyleKey?

I have a lot of Vertical Line Annotations and I am trying to make some of them look different other than just color. I need ways to show different vertical line annotations and this could be one of them.

0 votes
58 views

Hi,
I have to display an image on a SciChartSurface using direct draw. I have seen on the forum that it can be done using ITexture2D and DrawTexture by i can’t achieve it.
Could you provide a small piece of code for that ?

Best regards,
Valentin

0 votes
46 views

Related to: https://www.scichart.com/questions/wpf/exporttofile-exception-the-provided-dependencyobject-is-not-a-context-for-this-freezable

I got no reply…

I’m able to reproduce the issue in the thread above, or at least a similar issue with version 5.4

What my code has is a “Start/Stop” button. When “Start” is pressed, the Axes are cleared and re-initialized.
If just using Start / Stop then it works, but if I export the chart into an image (a PNG in that matter), and after few seconds I click on the “Start”, then few seconds later, the software crash on the exception mentioned above.

From what I’ve been able to debug, the Export to image create a new chart control with all the bindings, and renders it to an image.
When I click on start, then the Axis (in this case, I see that the Y Axes are the ones that cause it) are cleared and created in my view model, and therefore it also affects the chart.
The binding of the chart that was created for the rendering is probably not cleared, so it gets the change event after some time, and Arrange is being called.

I see that ArrangeOverride on the AxisPanel is called, and _axisTitle,Arrange is called at this point the application crashes.

Please fix it.

Btw, this is the stack trace:

Exception Info: System.ArgumentException
at System.Windows.Freezable.RemoveContextInformation(System.Windows.DependencyObject, System.Windows.DependencyProperty)
at System.Windows.Freezable.RemoveInheritanceContext(System.Windows.DependencyObject, System.Windows.DependencyProperty)
at System.Windows.DependencyObject.RemoveSelfAsInheritanceContext(System.Windows.DependencyObject, System.Windows.DependencyProperty)
at System.Windows.Freezable.OnFreezablePropertyChanged(System.Windows.DependencyObject, System.Windows.DependencyObject, System.Windows.DependencyProperty)
at System.Windows.Media.RenderData.PropagateChangedHandler(System.EventHandler, Boolean)
at System.Windows.UIElement.RenderClose(System.Windows.Media.IDrawingContent)
at System.Windows.Media.RenderDataDrawingContext.DisposeCore()
at System.Windows.Media.DrawingContext.System.IDisposable.Dispose()
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at MS.Internal.Helper.ArrangeElementWithSingleChild(System.Windows.UIElement, System.Windows.Size)
at System.Windows.Controls.ContentPresenter.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at System.Windows.Controls.Control.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at MS.Internal.Helper.ArrangeElementWithSingleChild(System.Windows.UIElement, System.Windows.Size)
at System.Windows.Controls.ContentPresenter.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at System.Windows.Controls.Control.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at System.Windows.Controls.Control.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at SciChart.Charting.Themes.AxisPanel.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at System.Windows.Controls.Grid.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at System.Windows.Controls.StackPanel.StackArrangeHelper(System.Windows.Controls.IStackMeasure, System.Windows.Controls.IStackMeasureScrollData, System.Windows.Size)
at System.Windows.Controls.StackPanel.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at System.Windows.Controls.Border.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at System.Windows.Controls.Control.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at System.Windows.Controls.StackPanel.StackArrangeHelper(System.Windows.Controls.IStackMeasure, System.Windows.Controls.IStackMeasureScrollData, System.Windows.Size)
at System.Windows.Controls.StackPanel.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at MS.Internal.Helper.ArrangeElementWithSingleChild(System.Windows.UIElement, System.Windows.Size)
at System.Windows.Controls.ItemsPresenter.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at System.Windows.Controls.Border.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at System.Windows.Controls.Control.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at System.Windows.Controls.Grid.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at System.Windows.Controls.Border.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at System.Windows.Controls.Control.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at System.Windows.ContextLayoutManager.UpdateLayout()
at System.Windows.ContextLayoutManager.UpdateLayoutCallback(System.Object)
at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
at System.Windows.Media.MediaContext.RenderMessageHandlerCore(System.Object)
at System.Windows.Media.MediaContext.RenderMessageHandler(System.Object)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
at System.Windows.Application.RunDispatcher(System.Object)
at System.Windows.Application.RunInternal(System.Windows.Window)
at Unitronics.Shell.UI.App.Main()

0 votes
16 views

我想实现一个功能,需要改变选中区域里面的几根蜡烛颜色为除了涨跌之外的其他颜色,整个功能该怎么实现?

0 votes
0 answers
63 views

Hi,
I would like to draw a polygon over a heatMap using an inherited class of UniformHeatMapDataSeries.
An example using FastHeatMapRenderableSeries was described here : https://www.scichart.com/questions/wpf/drawing-a-polygon-upon-a-heatmap-chart ,but it is now deprecated since SciCharts V5.

Instead of that, i tried to declare an inherited class of CustomRenderableSeries as shown here :

public class PolygonRenderableSeries : CustomRenderableSeries {
protected override void Draw(IRenderContext2D renderContext, IRenderPassData renderPassData)
{
base.Draw(renderContext, renderPassData);
}
}

What i need now is to pass a List of Polygons to this class in order to draw them directly. I know how to draw a polygon, but i don’t know how to override the renderPassData for adding polygons to it.

Could you help me about that ?
Best regards,

0 votes
60 views

Does SciChart provide a built-in way to display multiple data series on the same 3D chart where the series do not share a common unit or order of magnitude? On a 2D chart I would use a second y-axis via the YAxes collection but I can’t find an equivalent property on the SciChart3DSurface class.

0 votes
67 views

Hello
Currently, I downloaded Schichart Android (trial version).
But I cannot add its library to my application dependency.
I think it is caused because of my SDK version. (As it shows error: ‘compile’ is not permitted here , use ‘implementation’ instead)
As I guess SchiChart use Android 4.4 KitKat -9.x, while I use (SDK) Nougat and higher versions.
Is my assumption right, or are there any other problems connected with it?
Can you help me please with advice.
thanks in advance.
Best regards.

0 votes
0 answers
55 views

Hello, I am using the Cross CursorModifier with axis labels and tool tips on a FastCandlestickRenderableSeries only. I have been using the CursorModifier:SnappingMode=”CrosshairToSeries” however I would like to only have the X axis of the CursorModifier snap to the nearest X data point of the series. This way the Y axis of the CursorModifier is still free to view price and hold a reference for where the Tooltip should be displayed. Any direction to the proper documentation for this functionality would be appreciated.

Thank you,

0 votes
0 answers
68 views

How can I bind to pointmedata ?

 <s:FastLineRenderableSeries  YAxisId="Ch0"
                                        DataSeries="{Binding DataSeries[Marker]}" Stroke="Transparent"
                                        AntiAliasing="False" ResamplingMode="None"  >
                <s:FastLineRenderableSeries.PointMarker>
                    <s:SpritePointMarker>
                        <s:SpritePointMarker.PointMarkerTemplate>
                            <ControlTemplate>
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock Text="Test" Foreground="White"/>
                                    <s:CustomAnnotation >
                                        <s:CustomAnnotation.Style>
                                            <Style TargetType="s:CustomAnnotation">
                                                <Setter Property="Content">
                                                    <Setter.Value>
                                                        <Border x:Name="Border" BorderBrush="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=s:FastLineRenderableSeries},Path=MarkerAnnotationViewModel.BorderBrush}" BorderThickness="1" Width="11"
                        Height="11" Margin="-5,-5,0,0" CornerRadius="1"
                        Background="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=s:FastLineRenderableSeries},Path= PointMetadata.MarkerAnnotationViewModel.Background}">
                                                            <Border.Style>
                                                                <Style TargetType="Border">
                                                                    <Style.Triggers>
                                                                        <DataTrigger Binding="{Binding CanChange, UpdateSourceTrigger=PropertyChanged}"
                                             Value="True">
                                                                            <DataTrigger.EnterActions>
                                                                                <BeginStoryboard>
                                                                                    <Storyboard>
                                                                                        <DoubleAnimation Storyboard.TargetProperty="(Border.Opacity)"
                                                                 From="1" To="0" Duration="0:0:0.75"
                                                                 AutoReverse="True" RepeatBehavior="5x" />
                                                                                    </Storyboard>
                                                                                </BeginStoryboard>
                                                                            </DataTrigger.EnterActions>
                                                                            <DataTrigger.ExitActions>
                                                                                <BeginStoryboard>
                                                                                    <Storyboard>
                                                                                        <DoubleAnimation Storyboard.TargetProperty="Opacity" To="1.0"
                                                                 Duration="0:0:0" />
                                                                                    </Storyboard>
                                                                                </BeginStoryboard>
                                                                            </DataTrigger.ExitActions>
                                                                        </DataTrigger>
                                                                    </Style.Triggers>
                                                                </Style>
                                                            </Border.Style>
                                                        </Border>
                                                    </Setter.Value>
                                                </Setter>
                                            </Style>
                                        </s:CustomAnnotation.Style>
                                    </s:CustomAnnotation>
                                    <TextBlock Text="Test2" Foreground="White"></TextBlock>
                                </StackPanel>
                            </ControlTemplate>
                        </s:SpritePointMarker.PointMarkerTemplate>
                    </s:SpritePointMarker>
                </s:FastLineRenderableSeries.PointMarker>
            </s:FastLineRenderableSeries>
0 votes
0 answers
72 views

Hi, i’m developing an app in WPF and i found that it crashes when i’m dereferencing the user control where my chart lives in and have 1 or more points selected by code in one chart when the other one is not visible.

i would be very apreciated if someone could tell me a hint of where i have to look for the solution or what do this methods do or touch.

more data about the chart:

  • I have 2 fastlinerenderable series each with 2 Yaxis for itselves and 2 shared XAxis.
  • I also have a modified listbox which is have it’s sincronization synced to the chart.
  • have a modifiergroup to pan,zoom and select.

this is my Selectionmodifier:

<scicharts:DataPointSelectionModifier
                        Name="ChartSelection"
                        SelectionFill="#B1B5B2B2" 
                        XAxisId="{Binding XAxisType, NotifyOnTargetUpdated=True}"
                        TargetUpdated="ChartSelection_TargetUpdated"
                        SelectionStroke="#009E9C9C"
                        IsEnabled="{Binding SelectionMode}" >

I think that this is the axis that breaks my program but it needs it to not crash when i select.

this is my stacktrace:

An unhandled exception of type ‘System.NullReferenceException’ occurred in SciChart.Charting.dll

en SciChart.Charting.ChartModifiers.DataPointSelectionModifier.DeselectAllPointMarkers()
en SciChart.Charting.ChartModifiers.DataPointSelectionModifier.OnXAxisIdDependencyPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)

I tried to make a program that could replicate the error but i couldn’t.

thanks in advance.

1 vote
86 views

I want to share RolloverModifier in multiple charts I am using these lines of code but it is not sharing Rollover modifier

var rollOver: RolloverModifier? = null
rollOver = RolloverModifier()

val sharedRolloverModifier = sciChartBuilder.newModifierGroup()
.withMotionEventsGroup(“SharedRolloverModifier”).withReceiveHandledEvents(true)
.withModifier(rollOver).withReceiveHandledEvents(true)
.build()

surface.chartModifiers.add(sharedRolloverModifier)

  • sci chart asked 2 weeks ago
  • last active 2 weeks ago
0 votes
85 views

Hi,

I’m trying to add two column series with a different number of data points with the same width per column. There is a suggested solution here:

https://www.scichart.com/questions/wpf/constant-sized-column-bars

but I’m doing it from ViewModel.

So, if I understand it right, I can override GetColumnWidth() in FastColumnRenderableSeries in the new class ConstantColumnRenderableSeries, but how can I add ConstantColumnRenderableSeriesViewModel (overriding ColumnRenderableSeriesViewModel), so that once I add an instance of this newly created class ConstantColumnRenderableSeriesViewModel into RenderableSeries it will add ConstantColumnRenderableSeries to chart and render it?

Thanks in advance!

1 vote
82 views

Hi SciChart Team,
Is it possible to turn on anti aliasing for the major grid lines in 3D Surface?
The rendered lines in Chart look good, but the major grid lines look like they are built from the small strokes.

0 votes
61 views

Hi,

I wanted to try the V3 beta for iOS in objective-c but I don’t know how to format the string with the new license key.

Neither this (as found here: https://www.scichart.com/beta-edition-of-scichart-mobile-sdk-v3-now-available/):

[SCIChartSurface setRuntimeLicenseKey:@""
 "{"
   "\"ActivatedBy\": null,"
   "\"Customer\": \"Anyone\","
   "\"DeveloperCount\": null,"
   "\"ExpiryDate\": \"2019-12-21\","
   "\"Features\": ["
     "\"WPF-2D\","
     "\"AND-2D\","
     "\"iOS-2D\","
     "\"WPF-3D\","
     "\"AND-3D\","
     "\"iOS-3D\""
   "],"
   "\"IsTrialLicense\": true,"
   "\"KeyCode\":" "gRPFuMCiB0otJzffhGFJO09BtH3drfoDZV5pAkQNv9hyHJsfBsCr42BHRJ/oz2ib2uEgT33IYW3fGKExB4KPUbrNOeKazYrMI8pD5OJVlDoRXuJdY97iUZU2jNHRnXN0cgpBdqcQTWgW/afd9pYwcYT5P22sklCSrtTdwcuyepiLE9Ap9B2ixMVpoB43Yj79g1/yKzgPQaAmW38hjDyByQwxCQ9R88Jt4JqQRVQUhYxj31CFoX7Upm36oP32WGbEEex4E1qHTY+KALouRnA9JQZej13V4MjwF45xuQNiUDbk3RHtyJwWEjwGS9jHh24WiTj1aOaw8PAfBmKZl2FKfKSL7Q7Nu9jtUgZdGUbpZTKYrASpoVQiVk2/+1xAA8dB/7RdsjXVVrXf1RnMg8dNXsY7gcJJ25SF4QmZwqa82Dl+PnXGq0BSvfLaSrSl8uWkimTt0D/FwvaVqvpzomORpStboVNroTAcbaBJRIOK6tZDFwBj3qQV1N470/XW3aKHckN7GrNOpS7xpZ/EM9k=,"
   "\"MachineId\": null,"
   "\"OrderId\": \"BETA trial key\","
   "\"ProductCode\": \"SC-BUNDLE-SDK-PRO\","
   "\"SerialKey\": null,"
   "\"TicketQuantity\": null"
 "}"
 ""];

or this (old format style):

  [SCIChartSurface setRuntimeLicenseKey:@""
   "<LicenseContract>"
   "<Customer>Anyone</Customer>"
   "<OrderId>BETA trial key</OrderId>"
   "<LicenseCount>1</LicenseCount>"
   "<IsTrialLicense>true</IsTrialLicense>"
   "<SupportExpires>2019-12-21</SupportExpires>"
   "<ProductCode>SC-BUNDLE-SDK-PRO</ProductCode>"
 "<DeveloperCount>null</DeveloperCount>"
 "<MachineID>null</MachineID>"
 "<SerialKey>null</SerialKey>"
"TicketQuantity>null</TicketQuantity>"
"<Features>[WPF-2D, AND-2D, iOS-2D, WPF-3D, AND-3D, iOS-3D]</Features>" "<KeyCode>gRPFuMCiB0otJzffhGFJO09BtH3drfoDZV5pAkQNv9hyHJsfBsCr42BHRJ/oz2ib2uEgT33IYW3fGKExB4KPUbrNOeKazYrMI8pD5OJVlDoRXuJdY97iUZU2jNHRnXN0cgpBdqcQTWgW/afd9pYwcYT5P22sklCSrtTdwcuyepiLE9Ap9B2ixMVpoB43Yj79g1/yKzgPQaAmW38hjDyByQwxCQ9R88Jt4JqQRVQUhYxj31CFoX7Upm36oP32WGbEEex4E1qHTY+KALouRnA9JQZej13V4MjwF45xuQNiUDbk3RHtyJwWEjwGS9jHh24WiTj1aOaw8PAfBmKZl2FKfKSL7Q7Nu9jtUgZdGUbpZTKYrASpoVQiVk2/+1xAA8dB/7RdsjXVVrXf1RnMg8dNXsY7gcJJ25SF4QmZwqa82Dl+PnXGq0BSvfLaSrSl8uWkimTt0D/FwvaVqvpzomORpStboVNroTAcbaBJRIOK6tZDFwBj3qQV1N470/XW3aKHckN7GrNOpS7xpZ/EM9k=</KeyCode>"
   "</LicenseContract>"

   ];

worked.

I always get the message “Sorry! Your license token appears to be invalid. etc.”
What’s the right way?

Best regards,

Johannes

0 votes
62 views

How to use ClipModeX on our desired values instead of ClipAtExtents or ClipAtMin/Max?

  • sci chart asked 3 weeks ago
  • last active 3 weeks ago
0 votes
89 views

Hi,
We want to use scichart for ios-android and wpf platforms to use in our applications developed by our company for Financial (Trading) purposes. In our review, we found that we can use Linear Trendline for wpf platform in your documents. However, there was no documentation for the android and ios platforms. Since Linear Trendline is of great importance for trading, it is important to know whether this feature is available or if it will be developed as a new feature by you. I would ask you to provide information on the subject.

0 votes
76 views

VerticalLineAnnotation has

public event EventHandler<AnnotationDragDeltaEventArgs> DragDelta

It comes with an EventArgs. https://www.scichart.com/documentation/v5.x/webframe.html#SciChart.Charting~SciChart.Charting.Visuals.Annotations.VerticalLineAnnotation_members.html

VerticalLineAnnotation also has

public ICommand DragDeltaCommand {get; set;}

How can I pass AnnotationDragDeltaEventArgs into DragDeltaCommand ?

Thanks.

  • Hao Zeng asked 3 weeks ago
  • last active 3 weeks ago
1 vote
105 views

Hi!

I have 2 solutions of xamarin forms using scichart: one of them is the demo from github repo of scichart (2.2.1.839), and the other is my own solution using scichart 2.5.0.946.

The problem is when I attach a labelprovider (the same as the github example) to one of my numerical axes, the app automatically closes on the device (both), neither of the two solutions shows an error or exception.

0 votes
94 views

I see documentation that you can create a pie chart without mvvm and use piechartsegmentitem. It doesn’t appear the same can be done with a wpf chart. Is that correct? Also can animation be changed on wpf donut chart? Thanks.

  • John asked 4 weeks ago
  • last active 3 weeks ago
0 votes
104 views

Hi

Is it possible to control a FastLineRenderableSeries with PointMarkers so I can toggle between the following states:

  • Line and points (PointMarker set)
  • Line only (PointMarker not set)
  • Points only ??

How do I get the Points only mode without replacing the series with a XyScatterRenderableSeries?

/Flemming

0 votes
123 views

Hello is there way to update points in XyDataSeries without Garbage Collector call? Here is my code:

public void RefreshSignal(float[] xData, float[] yData)
{
        if (_series == null)
        {
             _series = new XyDataSeries<float, float>();
            _series.Append(xData, yData);
        }

         for (int i = 0; i < xData.Length; i++)
         {
               _series.Update(xData[i], yData[i]);
         }
}

I may use _series.YValues[i], but then UI will not update.

Main task for me fast update all 25k points in series each 30ms without GC calls.

0 votes
107 views

Chart not honoring RubberBandFill in custom theme. I have below custom them and it doesn’t honor color but if I set manually in xaml or code it works fine.

  • John asked 1 month ago
  • last active 4 weeks ago
0 votes
121 views

I’m rending a number of very small sparkline graphs that don’t need axis labels. As soon as I take the markup below and add DrawLabels=”False” to my Y Axis, I can no longer see any data. What am I missing here?

<s:SciChartSurface RenderableSeries="{s:SeriesBinding Chart.RenderableSeries}">
    <s:SciChartSurface.XAxis >
        <s:DateTimeAxis AutoRange="Always" DrawLabels="False" DrawMajorGridLines="False" DrawMinorGridLines="False" DrawMajorBands="False" DrawMajorTicks="False" DrawMinorTicks="False" >
            </s:DateTimeAxis>
    </s:SciChartSurface.XAxis>

    <s:SciChartSurface.YAxis>
        <s:NumericAxis AutoRange="Always" DrawMajorGridLines="False" DrawMinorGridLines="False" DrawMajorBands="False" DrawMajorTicks="False" DrawMinorTicks="False">
            <s:DoubleRange Min="0.1" Max="0.1"/>
        </s:NumericAxis>
    </s:SciChartSurface.YAxis>
</s:SciChartSurface>
0 votes
142 views

I’m putting together a fairly simply column chart but my columns aren’t appearing how I want them to.

Basically, I’m creating 20 columns for each chart (picture below) and I’m getting various widths (despite setting UseUniformWidth to true and using the same DataPointWidth) and the first column isn’t being shown. The top chart, for example, should be a repeating pattern of red, green, blue, and purple.

Column Charts

Here’s how I’m building the ColumnRenderableSeriesViewModel and adding it to the HighPressureRenderableSeries…

XyDataSeries<int, double> dataSeries = new XyDataSeries<int, double>() { SeriesName = $"{modbus.Name} - {channel.Name}" };

ColumnRenderableSeriesViewModel series = new ColumnRenderableSeriesViewModel()
{
    Stroke = channel.Color,
    DataPointWidth = .1,
    UseUniformWidth = true,
    XAxisId = "ChannelsId",
    YAxisId = "PressureId",
    Fill = channel.ColorBrush,
    DataSeries = dataSeries,
    ZeroLineY = 0.0
};

dataSeries.Append(x: channel.Index, y: channel.Value); // channel.Index goes from 0 - 19

HighPressureRenderableSeries.Add(series);

And here’s the XAML for the High Pressure chart…

<sci:SciChartSurface ChartTitle="High Pressure" RenderableSeries="{sci:SeriesBinding HighPressureRenderableSeries}">
    <sci:SciChartSurface.XAxis>
        <sci:NumericAxis AxisTitle="Channels" Id="ChannelsId" DrawMajorBands="False" />
    </sci:SciChartSurface.XAxis>

    <sci:SciChartSurface.YAxis>
        <sci:NumericAxis AxisTitle="Pressure" Id="PressureId" DrawMajorBands="False" VisibleRange="0,25" VisibleRangeLimit="0,25" />
    </sci:SciChartSurface.YAxis>

    <sci:SciChartSurface.ChartModifier>
        <sci:ModifierGroup>
            <sci:RubberBandXyZoomModifier />
            <sci:ZoomExtentsModifier />
        </sci:ModifierGroup>
    </sci:SciChartSurface.ChartModifier>
</sci:SciChartSurface>

Any tips or advice would be appreciated. I’m sure I’m just missing something simple.

  • Greg Knox asked 1 month ago
  • last active 1 month ago
0 votes
185 views

Hello ,

I have created a SimpleScatterChart3D application using the dll’s from SciChart Official Releases NuGet Feeds (myget) and when i plotted 20 thousand data points to the chart i am getting Access Violation Exception in SciChart.Charting.dll .

Can you please let us know how can i resolve this issue.

Thanks

0 votes
139 views

Hi

I want to change to font name & font size for all modifier tooltips (CursrorModifier, RolloverModifier and so on )

I discovered that all tooltips use TextBlocks with style HintDataItemsStyle. This is its definition:

  <!--  Label used in cursors  -->
  <Style x:Key="HintDataItemsStyle" TargetType="TextBlock">
      <Setter Property="apc:RelativeSourceBinding.AncestorType" Value="r:TemplatableControl"/>
      <Setter Property="Foreground" Value="{Binding Path=(apc:RelativeSourceBinding.Ancestor).Foreground, RelativeSource={RelativeSource Self}}" />
      <Setter Property="FontWeight" Value="{Binding Path=(apc:RelativeSourceBinding.Ancestor).FontWeight, RelativeSource={RelativeSource Self}}" />
      <Setter Property="FontFamily" Value="{Binding Path=(apc:RelativeSourceBinding.Ancestor).FontFamily, RelativeSource={RelativeSource Self}}" />
      <Setter Property="FontSize" Value="{Binding Path=(apc:RelativeSourceBinding.Ancestor).FontSize, RelativeSource={RelativeSource Self}}" />
      <Setter Property="Margin" Value="{Binding Path=(apc:RelativeSourceBinding.Ancestor).Margin, RelativeSource={RelativeSource Self}}" />
  </Style>

So, I feel this would be easy to change font parameters just setting them to some parent (due to RelativeSourceBinding.Ancestor binding). But I cannot figure out which. I tried to change font size for series, for axes and even for surface – no result.

  • Vlad R asked 1 month ago
  • last active 1 month ago
0 votes
141 views

I am trying disable AutoRange=”Always” property for SciChartOverview. As for now I see only one way, change SciChartOverview template. But VS generate wrong template for SciChartOverview, chart line gone, after template replacement (I am using “Edit Template” -> “Edit Copy” feature from VS designer mouse context menu )

Here is template:

<s:SciChartOverview.Resources>
    <Style TargetType="{x:Type s:SciChartOverview}">
        <Setter Property="FontSize" Value="20"/>
        <Setter Property="FontWeight" Value="Normal"/>
        <Setter Property="Background" Value="{Binding (s:ThemeManager.Theme), Mode=OneWay, RelativeSource={RelativeSource Self}}"/>
        <Setter Property="Foreground" Value="{Binding (s:ThemeManager.Theme), Mode=OneWay, RelativeSource={RelativeSource Self}}"/>
        <Setter Property="Padding" Value="0"/>
        <Setter Property="Fill" Value="{Binding (s:ThemeManager.Theme), Mode=OneWay, RelativeSource={RelativeSource Self}}"/>
        <Setter Property="Stroke" Value="{Binding (s:ThemeManager.Theme), Mode=OneWay, RelativeSource={RelativeSource Self}}"/>
        <Setter Property="SelectedRange" Value="{Binding Axis.VisibleRange, Mode=TwoWay, RelativeSource={RelativeSource Self}}"/>
        <Setter Property="RenderableSeriesStyle">
            <Setter.Value>
                <Style TargetType="{x:Type s:FastMountainRenderableSeries}">
                    <Setter Property="Fill" Value="{Binding Fill}"/>
                    <Setter Property="DataSeries" Value="{Binding DataSeries}"/>
                    <Setter Property="Stroke" Value="{Binding Stroke}"/>
                </Style>
            </Setter.Value>
        </Setter>
        <Setter Property="RenderableSeriesType" Value="{x:Type s:FastMountainRenderableSeries}"/>
        <Setter Property="ScrollbarStyle">
            <Setter.Value>
                <Style TargetType="{x:Type s:SciChartScrollbar}">
                    <Setter Property="Orientation" Value="Horizontal"/>
                    <Setter Property="GripsLength" Value="25"/>
                    <Setter Property="Background" Value="Transparent"/>
                    <Setter Property="ViewportStyle">
                        <Setter.Value>
                            <Style TargetType="{x:Type Control}">
                                <Setter Property="Opacity" Value="0"/>
                            </Style>
                        </Setter.Value>
                    </Setter>
                    <Setter Property="NonSelectedAreaStyle">
                        <Setter.Value>
                            <Style TargetType="{x:Type Path}">
                                <Setter Property="Fill" Value="{Binding (s:ThemeManager.Theme), Mode=OneWay, RelativeSource={RelativeSource Self}}"/>
                            </Style>
                        </Setter.Value>
                    </Setter>
                </Style>
            </Setter.Value>
        </Setter>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type s:SciChartOverview}">
                    <Grid x:Name="PART_Container">
                        <s:SciChartSurface x:Name="PART_BackgroundSurface" AnimateZoomExtentsCommand="" BorderThickness="0" Background="{TemplateBinding Background}" DebugWhyDoesntSciChartRender="False" Foreground="{TemplateBinding Foreground}" FontWeight="{TemplateBinding FontWeight}" FontSize="{TemplateBinding FontSize}" Padding="{TemplateBinding Padding}" RenderPriority="Normal" UseLayoutRounding="True" ZoomExtentsCommand="">
                            <s:SciChartSurface.ViewportManager>
                                <s:DefaultViewportManager>
                                    <s:DefaultViewportManager.Services>
                                        <Utility:ServiceContainer/>
                                    </s:DefaultViewportManager.Services>
                                </s:DefaultViewportManager>
                            </s:SciChartSurface.ViewportManager>
                            <s:SciChartSurface.YAxis>
                                <s:NumericAxis AutoRange="Always" DrawMajorGridLines="False" DrawMajorBands="False" DrawMinorGridLines="False" IsPrimaryAxis="True" TextFormatting="###E+0" UseLayoutRounding="True" Visibility="Collapsed">
                                    <s:NumericAxis.Services>
                                        <Utility:ServiceContainer/>
                                    </s:NumericAxis.Services>
                                    <s:NumericAxis.TickProvider>
                                        <s:NumericTickProvider/>
                                    </s:NumericAxis.TickProvider>
                                    <s:NumericAxis.TickCoordinatesProvider>
                                        <s:DefaultTickCoordinatesProvider/>
                                    </s:NumericAxis.TickCoordinatesProvider>
                                </s:NumericAxis>
                            </s:SciChartSurface.YAxis>
                            <s:SciChartSurface.YAxes>
                                <s:NumericAxis AutoRange="Always" DrawMajorGridLines="False" DrawMajorBands="False" DrawMinorGridLines="False" IsPrimaryAxis="True" TextFormatting="###E+0" UseLayoutRounding="True" Visibility="Collapsed">
                                    <s:NumericAxis.Services>
                                        <Utility:ServiceContainer/>
                                    </s:NumericAxis.Services>
                                    <s:NumericAxis.TickProvider>
                                        <s:NumericTickProvider/>
                                    </s:NumericAxis.TickProvider>
                                    <s:NumericAxis.TickCoordinatesProvider>
                                        <s:DefaultTickCoordinatesProvider/>
                                    </s:NumericAxis.TickCoordinatesProvider>
                                </s:NumericAxis>
                            </s:SciChartSurface.YAxes>
                        </s:SciChartSurface>
                        <s:SciChartScrollbar x:Name="PART_Scrollbar" Axis="{TemplateBinding Axis}" Height="{Binding ActualHeight, ElementName=PART_BackgroundSurface}" Style="{TemplateBinding ScrollbarStyle}"/>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</s:SciChartOverview.Resources>

The main task for me, set fixed VisibleRange for YAxis.

2 votes
131 views

var lineData = new XyDataSeries<DateTime, double>();

if I have a XyDataSeries<DateTime, double> then I can get the sweeping animation to work. If I change the XyDataSeries to XyDataSeries<DateTime, int> it fails to produce the chart and gives an exception stating

SciChartSurface didn’t render, because an exception was thrown:
Message: Specified cast is not valid.

Stack Trace: at SciChart.Charting.Visuals.RenderableSeries.Animations.Transformations.Point2DSeriesTransformation1.SweepTransform(T pointSeries, Double currentProgress)
at SciChart.Charting.Visuals.RenderableSeries.Animations.Transformations.Point2DSeriesTransformation
1.O(IPointSeries D, Double I)
at SciChart.Charting.Visuals.RenderableSeries.Animations.SweepAnimation.Animate(IRenderPassData rpd, Double currentProgress)
at SciChart.Charting.Visuals.RenderableSeries.Animations.SeriesAnimationBase.OnRender(IRenderPassData rpd)
at SciChart.Charting.Visuals.RenderableSeries.BaseRenderableSeries.WFB(IRenderContext2D D, IRenderPassData I)
at A.IJ.T(ISciChartSurface D, RenderPassInfo I, IRenderContext2D J, Int32 M)
at A.IJ.M(ISciChartSurface D, RenderPassInfo I, IRenderContext2D J)
at A.IJ.RenderLoop(IRenderContext2D renderContext)
at SciChart.Charting.Visuals.SciChartSurface.DoDrawingLoop()

Is this possible or does yaxis have to be a double? If I use fade animation it works properly. Thanks.

  • John asked 1 month ago
  • last active 1 month ago
0 votes
108 views

I cannot get SCILinearGradientBrushStyle working on a donut chart. Only radial gradients work

Here is my code sample:

let segment = SCIPieSegment()
segment.fillStyle = SCILinearGradientBrushStyle(colorCodeStart: 0xff007aff, finish: 0x4D007aff, direction: .horizontal)
segment.value = 100.0
segment.title = "Segment"
donutSeries.segments.add(segment)

The segment just renders a flat color

1 vote
131 views

Regarding Andrews comment on my question in this thread: https://www.scichart.com/questions/wpf/hittest-with-mvvm#sabai-entity-content-13177.

Thanks Andrew,
actually I need to know which nearest Y-value my XY line series has at the given VerticalLineAnnotationViewModel position. I need this value only for some calculation no need to show this on screen.

I found this post:
https://www.scichart.com/questions/wpf/current-y-value-of-annotation

But neither your answer Andrew nor the suggested solution of Alitec Developer works for me. The VerticalSliceHitTest() returns always a HitTestInfo with default values and the FindIndex() approach is not suitable for me because I have unsorted data.

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

I am demoing the product and read the article on using a custom theme. I am trying to get the x and y axis to be white as well. Which property should I use for this?

  • John asked 1 month ago
  • last active 1 month ago
1 vote
153 views

NuGet package: 6.0.0.12596-beta (SciChart nightly)

When building a simple WPF NET Core 3.0 app, a native dependency is found to be missing on clean machines (vcomp140.dll).

The only change from the default WPF NET Core 3.0 template, is the addition of the option for Self-Contained-Deployment:

<RuntimeIdentifier>win-x86</RuntimeIdentifier>

(I build for win-x86, since NET Core does not have an Any-CPU equivalent.)

The whole project file for reference:

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">

<PropertyGroup>
  <OutputType>WinExe</OutputType>
  <TargetFramework>netcoreapp3.0</TargetFramework>
  <UseWPF>true</UseWPF>
  <RuntimeIdentifier>win-x86</RuntimeIdentifier>
</PropertyGroup>

<ItemGroup>
  <PackageReference Include="SciChart" Version="6.0.0.12596-beta" />
  <PackageReference Include="SciChart.DirectX" Version="6.0.0.12596-beta" />
</ItemGroup>

When doing this, a build will result in the target folder containing: the application, all of the application dependencies (other projects, NuGet packages, references, etc), and all of the needed NET Core run-time files (including a bunch of DLLs that are normally installed by a C++ redistributable, needed for the NET Core run-time to function).

The result is a target folder ranging from about 100 – 200 MB (only about 60 MB compressed) that is ready to run on any clean machine with a minimum OS version of Windows 7 SP1 (with a lot of updates), without having to install a NET run-time or any other system-level dependencies.

When run on a clean machine (I tested with virtual machines for Windows 7 SP1 and Windows 10, with no dev tools installed), a XAML parse exception occurs when the SciChartSurface tries to load the native dependency:

C:\Users\some_user\AppData\Local\SciChart\Dependencies\v6.0.0.12596\x86\VXccelEngine2D.dll

I ran dependency walker on this to find the following dependencies:

c:\windows\system32\D3D9.DLL
c:\windows\system32\D3D11.DLL
c:\windows\system32\D3DCOMPILER_47.DLL
c:\windows\system32\VCOMP140.DLL
c:\windows\system32\KERNEL32.DLL
c:\windows\system32\USER32.DLL
c:\windows\system32\GDI32.DLL
c:\windows\system32\ADVAPI32.DLL
c:\windows\system32\OLE32.DLL

All of these are present on the Windows 7 SP1 (with updates) virtual machine I was running, except for vcomp140.dll. I confirmed that copying the file over from my dev machine to the application folder on the virtual machine caused the error to disappear, and SciChart seems to be working fine now.

For now I will simply add this file as a reference DLL to my project and copy that over, but would it make sense to add this to one of the SciChart NuGet packages in this case? The only problem is you probably wouldn’t want to add it unconditionally, but somehow only for self-contained builds, and there just isn’t a lot of information about self-contained builds at the moment, or how to detect them or anything like that. I suppose a build-time check for the “RuntimeIdentifier” project property would work, as that always results in a self-contained build, but it’s honestly a little hard to say.

0 votes
224 views

Trying out the latest SciChart beta and my XML style license no longer works, and redirects me to get a JSON one, which I don’t seem to have

Showing 1 - 50 of 3k results
SciChart WPF v6 BETA released! Note pricing/licensing changes are coming. Contact us to beat the rise!Read more
+