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

Welcome to the SciChart WPF Charts Community Forums!

Please see our Question asking guidelines before posting. You can also find our WPF Charts Documentation here.
  – Thanks & regards, SciChart Team

0 votes
17 views

Hi ,

I am facing a issue with the tooltips.When the scichart surface width is small or the window that has the scichartsurface is small the tooltips are not coming out of chart surface. I can reproduce the issue in Scichart sample(CustomTooltipsWithModifiers) also.

I even tried setting ClipModifierSurface =”False” ClipToBounds=”False”, but no luck. I still have the issue.

FYI , I am attaching the .png files. I cannot attach the sample project here because the allowed upload size is smaller.

Thanks,
Rakesh Bandari.

0 votes
25 views

Hi,
I’m calculating a moving average and adding it to my chart as a data series. I would like to capture the x and y pixel coordinates of the plot when the moving average is updated so I can store this for later use. My moving average data series is an IXyDataSeries<DateTime, double>; Can you show an example of how to capture the X and Y pixel coordinate for each plotted Y value both on creation and on update?
Thanks,
Dewey

0 votes
34 views

Hi,

I am trying to create a realtime stripchart which currently contains up to 30 plots. (The number of plots in a single chart will likely be reduced, as they will be divided into a few linked charts.)
A new data point is added to all plots every 50 ms and the chart’s display area should show 1’000 to 10’000 data points, while storing up to 1’000’000 points per plot overall.

When paused (at least), the user should be able to scroll and zoom to see the entire range.

As I noticed an increase in one core’s CPU usage as more points are added, I was wondering, what things should I watch out for, to get the best performance?

I read over the “Performance Tips & Tricks” page and tried both the HighSpeedRenderSurface and the Direct3D10RenderSurface, with the latter working noticeably better, but I’m still a bit concerned about how the overall performance will be when using multiple charts with quite a few plots and a lot of data in them, especially as the program is likely going to have to run on computers with less processing power than the one I’m currently working on.
I was hoping that you have some more ideas, tips and trick for what I could do in this special case.

0 votes
29 views

I have a series of charts with flipped coordinates, and each chart has multiple x-axes at the top (see screenshot). I’ve successfully added titles to the axes but I’m stuck trying to figure out how to reduce the spacing between the titles and the axis labels. In the included screenshot, it is apparent that a lot of real estate is being eaten up by this. These charts are generated dynamically so I need a code, not xaml, solution. I’ve looked into a lot of axis title styling examples but all use a xaml approach, and I’m having trouble translating that style info into code. Could anyone suggest what class(es) to use in the axis constructor, or provide a brief example?

0 votes
45 views

Is there a simple white background theme?

0 votes
0 answers
41 views

Hi,

I’m trying to bind the maximum value of the HeatmapColorPalette in v5 in order to autorange the colormap to the data.

        <s:FastUniformHeatmapRenderableSeries x:Name="heatmapSeries" DataSeries="{Binding Data}" Opacity="0.9">
            <s:FastUniformHeatmapRenderableSeries.ColorMap>
                <s:HeatmapColorPalette Maximum="{Binding ColorMaximum}">
                    <s:HeatmapColorPalette.GradientStops>
                        <GradientStop Offset="0" Color="DarkBlue"/>
                        <GradientStop Offset="0.2" Color="CornflowerBlue"/>
                        <GradientStop Offset="0.4" Color="DarkGreen"/>
                        <GradientStop Offset="0.6" Color="Chartreuse"/>
                        <GradientStop Offset="0.8" Color="Yellow"/>
                        <GradientStop Offset="1" Color="Red"/>
                    </s:HeatmapColorPalette.GradientStops>
                </s:HeatmapColorPalette>
            </s:FastUniformHeatmapRenderableSeries.ColorMap>
        </s:FastUniformHeatmapRenderableSeries>

This previously worked in v4

            <s:FastHeatMapRenderableSeries x:Name="heatmapSeries" 
                                           DataSeries="{Binding Data}" 
                                           Opacity="0.9"
                                           Maximum="{Binding ColorMaximum}" 
                                           Minimum="{Binding ColorMinimum}"/>

The heatmap no longer refreshes to the new range when using the FastUniformHeatmapRenderableSeries instead of FastHeatMapRenderableSeries. Does anyone know why?

Regards,

0 votes
0 answers
47 views

Hi,

I have found what appears to be an issue with the ability to set up point markers on a line renderable series. I am using a style similar to the following (inside the resource dictionary of the surface instance) to add markers for selection and discovered that the point marker set for SelectedPointMarker shows for all points in the series even though the series or any points within it aren’t actually selected. (By default, I also force all selections to false in my point metadata for precautionary reasons).

<Style x:Key="{x:Type s:FastLineRenderableSeriesForMvvm}" TargetType="{x:Type s:FastLineRenderableSeriesForMvvm}">
     <Setter Property="SelectedPointMarker">
        <Setter.Value>
           <s:EllipsePointMarker Fill="#C4ECA0" Width="12" Height="12" />
        </Setter.Value>
     </Setter>
</Style>

Thanks,
Chris

0 votes
48 views

hi,
I have added a series to chart, still the Axis.DataRange is null.
Please let me know when the Axis.DataRange will be populated.

Code used :

xaml :
RenderableSeries=”{s:SeriesBinding SeriesViewModels}”

ViewModel :
public ObservableCollection IRenderableSeriesViewModel SeriesViewModels

0 votes
0 answers
46 views

hi,
please let me know how can I identify if a VerticalLineAnnotation is intersecting with any series or not.

Thanks,
Vibin

0 votes
47 views

Dear all,

I am trying to load my chart with a default zoom factor value. For that I have follow and modify the exemple shown by using key stroke.

My modifiier class is defined as below :

 public class SimpleZoomInOutModifier : ChartModifierBase
{
    public static readonly DependencyProperty ZoomFractionProperty 
        = DependencyProperty.Register("ZoomFraction", typeof(double), typeof(SimpleZoomInOutModifier), new PropertyMetadata(0.1));

    public double ZoomFraction
    {
        get { return (double)GetValue(ZoomFractionProperty); }
        set { SetValue(ZoomFractionProperty, value); }
    }

    void SciChart_PreviewKeyDown(object sender, KeyEventArgs e)
    {
        double factor = 0;

        if (e.Key == Key.Up)
        {
            // On CTRL+, Zoom In
            factor = -ZoomFraction;
        }
        if (e.Key == Key.Down)
        {
            // On CTRL-, Zoom Out
            factor = ZoomFraction;
        }

        using (ParentSurface.SuspendUpdates())
        {
            // Zoom the XAxis by the required factor
            XAxis.ZoomBy(factor, factor, TimeSpan.FromMilliseconds(500));

            // Zoom the YAxis by the required factor
            YAxis.ZoomBy(factor, factor, TimeSpan.FromMilliseconds(500));

            // Note.. can be extended for multiple YAxis XAxis, just iterate over all axes on the parent surface
        }
    }

    public override void OnAttached()
    {
        base.OnAttached();
        var scichart = ((SciChartSurface)ParentSurface);

        var mainWindow = FindLogicalParent<UserControl>(scichart);

        mainWindow.PreviewKeyDown -= SciChart_PreviewKeyDown;
        mainWindow.PreviewKeyDown += SciChart_PreviewKeyDown;
        mainWindow.Loaded += SciChart_Loaded; 
    }

    private void SciChart_Loaded(object sender, RoutedEventArgs e)
    {
        double factor = 0;
        // On CTRL+, Zoom In
        factor = -ZoomFraction;

        using (ParentSurface.SuspendUpdates())
        {
            // Zoom the XAxis by the required factor
            XAxis.ZoomBy(factor, factor, TimeSpan.FromMilliseconds(500));

            // Zoom the YAxis by the required factor
            YAxis.ZoomBy(factor, factor, TimeSpan.FromMilliseconds(500));

            // Note.. can be extended for multiple YAxis XAxis, just iterate over all axes on the parent surface
        }
    }

From the code above, the zoom in by using Up and Down keys is working perfectly well but when I try to force the zoom in inside the chart_loaded event, nothing happen.

Any idea what I am doing wrong ?

regards

  • sc sc asked 3 weeks ago
  • last active 3 weeks ago
0 votes
54 views

Dear all,

I need to change the background of the toolbar based on customer graphic chart.
How can I style the tool bar ?

Could not find proper place

Regards
serge

  • sc sc asked 4 weeks ago
  • last active 2 weeks ago
0 votes
55 views

Dear all,

I try to style default value for the FastLineRenderSeries by setting the stroke color and thinckness.
If In set directly those value inside xaml as below it works fine :

<s:SciChartSurface.RenderableSeries>
            <s:FastLineRenderableSeries  DataSeries="{Binding ColumnDataSeries}"
                                         Stroke="DarkBlue"
                                         StrokeThickness="2"/>
        </s:SciChartSurface.RenderableSeries>

Then if I create the following style and apply it, it does not work

<Style x:Key="SingleStrokeStyle" TargetType="s:FastLineRenderableSeries">
    <Setter Property="Stroke" Value="{StaticResource NigthBlueBrush}"/>
    <Setter Property="StrokeThickness" Value="2"/>
</Style>

Any idea how to make it work ?

Regards
serge

  • sc sc asked 4 weeks ago
  • last active 2 weeks ago
0 votes
56 views

I have created a custom annotation for displaying averages for a selected section of the displayed data. It works fine for printing, or copying to the clipboard, or saving a BMP file without specifying a size. However, if I export to XPS or try to specify a size for the BMP, I get the following exception:

    SciChart.Charting.Common.Helpers.ExportException occurred
  HResult=0x80131500
  Message=Exception occured during serialization of the AverageAnnotation type. The Content property of the Object type cannot be processed. Please be advised that SciChart doesn't handle serialization of objects with propeties of interface type, collection type or custom type.You need to implement IXmlSerializible in such objects to have them handled properly. For more details, please check the InnerException.
  Source=SciChart.Charting
  StackTrace:
   at SciChart.Charting.Visuals.SciChartSurfaceBase.CreateCloneOfSurfaceInMemory(Size newSize)
   at SciChart.Charting.Visuals.SciChartSurface.CreateCloneOfSurfaceInMemory(Size newSize)
   at SciChart.Charting.Visuals.SciChartSurfaceBase.GE(ExportType D, Boolean I, Nullable`1 J)
   at SciChart.Charting.Visuals.SciChartSurfaceBase.ExportToFileInternal(String fileName, ExportType exportType, Boolean useXamlRenderSurface, Nullable`1 size)
   at SciChart.Charting.Visuals.SciChartSurfaceBase.ExportToFile(String fileName, ExportType exportType, Boolean useXamlRenderSurface)
   at SciChart.Charting.Common.Extensions.SciChartSurfaceExtensions.ExportToXPS(SciChartSurface surface, String filePath, Nullable`1 size)
   at Profile6.ProfileTestResultsWindow.SaveGraph() in C:\Vericom\vc5000configurator\Profile6\ProfileTestResultsWindow.xaml.cs:line 75

Inner Exception 1:
InvalidOperationException: Cannot serialize a generic type 'System.Collections.Generic.KeyValuePair`2[System.String,System.Collections.Generic.List`1[Profile6.TestResultsViewModels.AverageAnnotationViewModel+AverageInfo]]'.

I tried wrapping the Averages list in a class that implemented IXmlSerializable, but that didn’t change anything. Does anyone know what I need to do to make this work?

I tried attaching the source code in various formats, but keep getting Forbidden errors. So, I put it inline below. (The AverageAnnotation.xaml.cs is the default code with only InitializeComponent();)

AverageAnnotation.xaml

   <sci:CustomAnnotationForMvvm x:Class="Profile6.TestResultsViewModels.AverageAnnotation"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:Profile6.TestResultsViewModels"
                             xmlns:localization="clr-namespace:VC5000Configurator.Localization;assembly=VC5000Configurator.Localization"
             xmlns:sci="http://schemas.abtsoftware.co.uk/scichart"
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">
    <Border BorderBrush="Black" BorderThickness="1">
        <StackPanel Background="White">
            <StackPanel.Resources>
                <ResourceDictionary>
                    <!-- Disable the highlighting for the lists -->
                    <Style TargetType="{x:Type ListViewItem}" x:Key="NoHighlight">
                        <Setter Property="Background" Value="Transparent" />
                        <Setter Property="Margin" Value="0"/>
                        <Setter Property="Padding" Value="0"/>
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="{x:Type ListViewItem}">
                                    <ContentPresenter />
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </ResourceDictionary>
            </StackPanel.Resources>

            <Label Content="{x:Static localization:I18N.Averages}"
                   HorizontalAlignment="Center"
                   FontSize="12" FontWeight="Bold"/>  
            <ListView ItemsSource="{Binding Averages}" 
                      Background="Transparent"
                      ItemContainerStyle="{StaticResource NoHighlight}">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Background="Transparent">
                            <Label Content="{Binding Key}" 
                                   Visibility="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=ItemsControl}, Path=DataContext.HasMultipleRuns, Converter={StaticResource FalseToCollapsedConverter}}"
                                   FontSize="10" FontWeight="Bold"/>
                            <ListView ItemsSource="{Binding Value}"
                                      ItemContainerStyle="{StaticResource NoHighlight}">
                                <ListView.ItemTemplate>
                                    <DataTemplate>
                                        <Grid Margin="10,0,0,0"
                                              Background="Transparent">
                                            <Grid.ColumnDefinitions>
                                                <ColumnDefinition Width="Auto" SharedSizeGroup="Name"/>
                                                <ColumnDefinition Width="Auto" SharedSizeGroup="Average"/>
                                            </Grid.ColumnDefinitions>
                                            <Grid.RowDefinitions>
                                                <RowDefinition Height="Auto"/>
                                            </Grid.RowDefinitions>
                                            <Label Content="{Binding SensorName}" 
                                                   Padding="0"
                                                   FontSize="10" FontWeight="Bold"
                                                   Foreground="{Binding TextBrush}"
                                                   Background="Transparent"/>
                                            <Label Content="{Binding Average}"
                                                   Padding="0"
                                                   FontSize="10" FontWeight="Bold"
                                                   Foreground="{Binding TextBrush}"
                                                   Grid.Row="0" Grid.Column="1"/>
                                        </Grid>
                                    </DataTemplate>
                                </ListView.ItemTemplate>
                            </ListView>
                        </StackPanel>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
        </StackPanel>
    </Border>
</sci:CustomAnnotationForMvvm>

AverageAnnotationViewModel.cs

using System;
using System.Collections.Generic;
using System.Windows.Media;
using SciChart.Charting.Model.ChartSeries;

namespace Profile6.TestResultsViewModels
{
    public class AverageAnnotationViewModel : CustomAnnotationViewModel
    {
        public override Type ViewType => typeof(AverageAnnotation);

        private List<KeyValuePair<string, List<AverageInfo>>> averages;
        public List<KeyValuePair<string, List<AverageInfo>>> Averages
        {
            get => averages;
            set
            {
                averages = value;
                OnPropertyChanged(nameof(Averages));
                OnPropertyChanged(nameof(HasMultipleRuns));
            }
        }

        public bool HasMultipleRuns => Averages.Count > 1;

        public class AverageInfo
        {
            public AverageInfo(string sensorName, double average, Color textColor)
            {
                SensorName = sensorName;
                Average = average;
                TextColor = textColor;
                TextBrush = new SolidColorBrush(TextColor);
            }

            public string SensorName { get; }
            public double Average { get; }
            public Color TextColor { get; }
            public Brush TextBrush { get; }
        }
    }
}
0 votes
65 views

I am evaluating SciChart for an upcoming project.
I need to be able to use the charts in a web browser as well as a console.
I have downloaded the v5 trial version and have been trying to use the chart control in a WPF browser application.
While trying to do so, I get runtime error “A first chance exception of type ‘System.Windows.Markup.XamlParseException’ occurred in PresentationFramework.dll”

Can you please help me to fix the above issue.

0 votes
57 views

I just installed scicharts and tried to open the Launch SciChart v5 wpf example suite it just crashes on me. I am using windows 10 64bit. The event logs on windows shows:

1026
2
0
0x80000000000000

61382
Application
afogel-l-w10.tainstruments.com


Application: SciChart.Examples.Demo.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.InvalidOperationException at System.Windows.Window.set_Owner(System.Windows.Window) at SciChart.Examples.Demo.App.App_DispatcherUnhandledException(System.Object, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs) at System.Windows.Threading.Dispatcher.CatchException(System.Exception) 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 SciChart.Examples.Demo.App.Main()

Any clues?
Thanks!

0 votes
63 views

Hello,

Now that SciChart ver 5.0 has been released with support for the DiscontinuousDateTime axis type, I am evaluating it for use in financial charting. I see the NYSECalendar example on how to create a custom calendar but don’t immediately see how I would use the API to handle trading hours for futures contracts. For example, soybeans at the Chicago Mercantile Exchange open for trading Sunday night at 7 PM. They trade until the next morning until 7:45 AM at which point there is a pause and then trading resumes at 8:30 AM and continues until 1:20 PM (yes, I know a bit convoluted). So I want to skip Saturday, but only part of Sunday, and part of Friday after trading is done for the week. How would I achieve this with the DiscontinousDateTimeCalendar? Thank you.

Regards,
Lawson

0 votes
52 views

Dear all,

Actually in all chart demo the zoom is done by using the mouse and define the area to zoom in.

I would like to be able to have a button when I click on it it will zoom the view port area with a predifine zoom increment.

Question :
How can we control the zoom from a button click without specifying an area but use a zoom increment instead ?

thanks sample

regards

  • sc sc asked 1 month ago
  • last active 1 month ago
0 votes
55 views

Dear all,

I need to build the sample graph demo on attached picture.

I have 2 questions on how to do :

1 – Position of the Red line :
For the Red ligne, customer would like to display the line at the average calculation of the series automatically. How to place that line automatically at a fixed position value ( not movable )

2 – Position of the Yellow line
For the yellow line, customer would like to enter a value on the Threashold text box and the yellow line should be then automatically position to that value. Then if customer scroll the yellow line up or down, I need to dispplay the current Y value

How to do those 2 scenarios ? could not find proper exemple which shows this text box edition and automatically place the line.

Thanks for help

regards

  • sc sc asked 1 month ago
  • last active 1 month ago
0 votes
51 views

Hello all,

I’am having trouble adding a label to each data point on a FastLineRenderableSeries that only shows the Y value of the data point.

What might be special here is that I’am adding the line series in the code behind (this.sciChartSurface.RenderableSeries.Add(series)), so I cannot add a TooltipModifier Style in XAML (I think this would do the work if I would add the line in XAML).
The label should appear on each data point and only display the Y value of this point, also the label should be visible all the time, not only on MouseOver.

Can anyone help me with this?

Thanks in advanced.

0 votes
78 views

I am building an application that plots over 600 series, I want to have a method of filtering the series in the legend, is this possible with SciChart Legend API?

Also, how can I set the checkbox’s of all the series to unchecked as defualt when data is imported? At the moment, when the data is pulled into the application the legend populates the series and the checkboxes are checked as default.

If I can supply any further information, please let me know.

Thanks

0 votes
63 views

Dear all,

For my customer application I have a bunch of measure data point which are displayed in a Line graph.
Customer is willing to have that series representation has Histogram graph.

Does your Histogram graph does the stat calculation internally based on the given series to properly display the column, or does that calculation need to be done as part of the code ?

Thanks

regards

  • sc sc asked 1 month ago
  • last active 1 month ago
0 votes
65 views

Dear all,

I have open the DragHorizontalThreshold sample where I need to display at the bottom a scrollvier content bind to graph series.

For that I have the following xaml sample code :

 <s:SciChartSurface x:Name="**sciChart**"
                       Grid.Column="1"
                       BorderThickness="0"
                       Padding="0"
                       ViewportManager="{Binding ViewportManager,
                                                 Mode=OneWay,
                                                 FallbackValue={StaticResource DefaultViewportManager}}">

        <s:SciChartSurface.RenderableSeries>
            <s:FastColumnRenderableSeries DataPointWidth="1" 
                                          **DataSeries="{Binding ColumnDataSeries}"**
                                          PaletteProvider="{Binding ThresholdPaletteProvider}" />
        </s:SciChartSurface.RenderableSeries>

        <s:SciChartSurface.XAxis>
            <s:NumericAxis AxisAlignment="{Binding ElementName=cboXAxisAlignment,
                                                   Path=SelectedItem}"
                           x:Name="XAxis"
                           DrawMajorBands="True"
                           VisibleRange="0.0, 10.0" />
        </s:SciChartSurface.XAxis>

        <s:SciChartSurface.YAxis>
            <s:NumericAxis AxisAlignment="{Binding ElementName=cboYAxisAlignment,
                                                   Path=SelectedItem}"
                           DrawMajorBands="True"
                           VisibleRange="-1.0, 1.0" />
        </s:SciChartSurface.YAxis>

        <s:SciChartSurface.Annotations>
            <s:HorizontalLineAnnotation HorizontalAlignment="Stretch"
                                        FontSize="13"
                                        FontWeight="Bold"
                                        Foreground="White"
                                        IsEditable="True"
                                        LabelPlacement="Axis"
                                        LabelTextFormatting="0.00"
                                        ShowLabel="True"
                                        Stroke="#FF42b649"
                                        StrokeThickness="2"
                                        Y1="{Binding Threshold,
                                                     Mode=TwoWay,
                                                     FallbackValue=0.5}" />
        </s:SciChartSurface.Annotations>

        <s:SciChartSurface.ChartModifier>
            <s:LegendModifier Margin="10"
                              LegendTemplate="{StaticResource LegendTemplate}"
                              ShowLegend="True" />
        </s:SciChartSurface.ChartModifier>
    </s:SciChartSurface>
    <!--  Define the SciChartSurface behind the scrollbar  -->
    <s:SciChartSurface x:Name="**OverviewSurface**" Grid.Column="0" Loaded="OnOverviewSurfaceLoaded" RenderableSeries="{ s:SeriesBinding ColumnDataSeries}">

        <s:SciChartSurface.XAxis>
            <s:NumericAxis DrawMajorGridLines="False" DrawMinorGridLines="False" Visibility="Collapsed"/>
        </s:SciChartSurface.XAxis>

        <s:SciChartSurface.YAxis>

            <s:NumericAxis DrawMajorGridLines="False" DrawMinorGridLines="False" Visibility="Collapsed"/>
        </s:SciChartSurface.YAxis>

    </s:SciChartSurface>

    <s:SciChartScrollbar Grid.Column="1" Height="100" Margin="{Binding ElementName=sciChart, Path=Padding, Mode=OneWay}" Axis="{Binding ElementName=XAxis}"/>

My main chart which is called sciChart, is using s:FastColumnRenderableSeries which is bind to ColumnDataSeries.
Then I have an other chart named OverviewSurface, which used to display the overview of main graph.

The problem I have have is to find out the correct binding syntax to bind it to my main chart ColumnDataSeries.

If I use the syntax RenderableSeries=”{ s:SeriesBinding ColumnDataSeries}”, as in my exemple I get an exception on the binding.

How the binding should be define here ?

Thanks for help

regards

  • sc sc asked 1 month ago
  • last active 1 month ago
0 votes
62 views

Dear all,

In my customer application, I need to get all text visible on the graph or button to be displayed based on customer language.
Is this possible for nay text or is there some text which are hard coded in a way ?

Regards

  • sc sc asked 1 month ago
  • last active 1 month ago
0 votes
81 views

We are getting a NullReferenceException at OnRenderSurfaceBaseLoaded(Object sender, RoutedEventArgs e) in Direct3D10RenderSurface.

On calling:

if (Direct3D10CompatibilityHelper.SupportsDirectX10)
        {
            // quickest one and optically on par with high quality or xaml rendering
            return new Direct3D10RenderSurface();
        }

System:
Windows 8: Version 6.2.9200.0
CLR version: 4.0.30319.42000

see Stacktrace:


Stack trace

System.NullReferenceException: Object reference not set to an instance of an object.
----------------------------------------------------------------------
at SciChart.Drawing.DirectX.Context.D3D10.Direct3D10RenderSurface.OnRenderSurfaceBaseLoaded(Object sender, RoutedEventArgs e): 
----------------------------------------------------------------------
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised): 
----------------------------------------------------------------------
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args): 
----------------------------------------------------------------------
at System.Windows.BroadcastEventHelper.BroadcastEvent(DependencyObject root, RoutedEvent routedEvent): 
----------------------------------------------------------------------
at System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(Object root): 
----------------------------------------------------------------------
at MS.Internal.LoadedOrUnloadedOperation.DoWork(): 
----------------------------------------------------------------------
at System.Windows.Media.MediaContext.FireLoadedPendingCallbacks(): 
----------------------------------------------------------------------
at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks(): 
----------------------------------------------------------------------
at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget): 
----------------------------------------------------------------------
at System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget): 
----------------------------------------------------------------------
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs): 
----------------------------------------------------------------------
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler): 

Any help?

  • joerg asked 1 month ago
  • last active 1 month ago
0 votes
66 views

Dear all
When the binding data is changed in real time to the ColumnRenderableSeries, the pointer size of the corresponding series is changed to an arbitrary size.
ColumnRenderableSeries wants to know if it can fix the size when the x and z axes are changed in real time.
Or, I want to know if there is a function that can calculate the position of xyz in 3D chart and adjust the height of the corresponding pointer.

Thank you for your reply.

  • Lee JunHee asked 1 month ago
  • last active 1 month ago
0 votes
77 views

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

regards

  • sc sc asked 1 month ago
  • last active 1 month ago
0 votes
78 views

Dear all,

I am actually learning your chart control and I have seen that you have a ready made chart tool bar control that is place on your sample in left side of the graph demo.

Based on that tool bar I have few question :

1 – Does the small button on the tool bar chart control can be styled differently ?
– having rectangle button
– change button icon
– change button bacground color
– ….

Regards

  • sc sc asked 1 month ago
  • last active 1 month ago
0 votes
80 views

Dear all,

What the following GrowBy is actually doing on the YAxis as define below and what is the unit of 0.1 ?

<s:SciChartSurface.YAxis>
            <s:NumericAxis GrowBy="0.1, 0.1" />
        </s:SciChartSurface.YAxis>

thanks for clarification
regards

  • sc sc asked 1 month ago
  • last active 1 month ago
0 votes
97 views

Dear all,

I am checking in chart demo sample how to use mvvm to bind the chart to a datasource for the series.

I have seen in the constructor of the viewmodel that an instance of ViewportMnager is created as below :

ViewportManager = new DefaultViewportManager();

Then it is used in the folloying methods :

    // Called when the AppendDataCommand is invoked via button click on the view
    private void AppendData()
    {
        var newData = _dataSource.GetRandomWalkSeries(50);

        _dataSeries0.Append(newData.XData, newData.YData);
        ViewportManager.ZoomExtents();
    }

Could you pleas explain what this viewport is doing and what will happen if ZoomExtends() is not called here ?

  • sc sc asked 1 month ago
  • last active 1 month ago
0 votes
80 views

Dear all,

in many sample I have explore min the chart there is the following line below :


<s:SciChartSurface.ChartModifier>

…….

I do not understand correctly what ChartModifiers does and when we need to implement it.

could you pleas clarify ?

regards

  • sc sc asked 1 month ago
  • last active 1 month ago
0 votes
88 views

Dear all,

if you look at the attached picture from your samples, we can see that the Y axis values a from 6 to – 6.

My customer feature request is asking to provide 2 text box field on the chart menu button to control the Min an max value .

For exemple if the user define as Max value of 4 and Min value of – 4, then when the user validate those entry :

Q1 : How to scale the Max and Min of the graph to those define value automatically ?

Q2 : Where and how to place those Min and max field in the chart button control ?

(see attached pictures)

  • sc sc asked 1 month ago
  • last active 1 month ago
0 votes
73 views

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 ?

regards

  • sc sc asked 1 month ago
  • last active 1 month ago
0 votes
90 views

Are you able to plot slices in X and Y direction in the new V5 3D waterfall plot? Just like what you can do in the example waterfall plot in 2D.

  • Ning Qiang asked 1 month ago
  • last active 1 month ago
0 votes
68 views

Dear all,

I am evaluating the graph control and I need to cover a request for my customer project.

The thing is that my customer have a bunch of data which gets display as scatter graph view.

The idea is that if the user is placing the mouse over a point, I need to display the current point value (x,y) as an information.
Then in an other hand, if the user click on the point, I need to open a text box and enter a description for that point. The comment and point link will be store in a database to be able to recall.

How cqn I do the 2 operations of displaying values on mouse over and poo up a text box for comment on point ckick ?

Thanks for your help on this

regards

  • sc sc asked 1 month ago
  • last active 1 month ago
0 votes
81 views

Dear all,

I try to study your tool from trial version sample . Frist simple graph I look at is Band Series chart and when checking it I get some missunderstanding hope you can light up my brain.

First of all it has a on left a button call Toggle Zoom Pan button with direction list. what ever I select in this list I do not see what is the effect on this actually on the zoom, can you explain how can I see the effect ?

Second wierd question I have is that is use a yyDataSeries where we need to provide 1 X and 2 Y, what does it means exactly?
Does it means that the data source have same x values but 2 y ?

What if the source of data have 2 different x and y values ?

Thanks to clarify

regards

  • sc sc asked 1 month ago
  • last active 1 month ago
0 votes
70 views

Dear all,

I just try to evaluate your tool for a customer project which will start soon and need to see if SciChart is allowing customer request.

One of the request is as below :

The idea is to offer the user of our app to see a list of graph that can be used.
From this list of graph the user can select a default graph to see his data
Then an other possibility is that starting from a default graph template, user could change parameter setting of the selected graph and save it to a new custom graph name he can reuse afterwards.

Is this something possible ?
If yes how to save that new graph settings and recall it ?

Thanks for your help and advise on this

regards

  • sc sc asked 1 month ago
  • last active 1 month ago
0 votes
86 views

Hi

I was trying to bind DoubleRange type property to the VisibleRange property of LogarimethicNumericAxis.
Since DoubleRange is not a primitive type, OnPropertyChanged command didn’t work in c#.
Is there any way to reslove this problem?
My code is as below.

in View

<sci:SciChartSurface.XAxis>
    <sci:LogarithmicNumericAxis AutoRange="Never"    
        DrawMajorGridLines="False" 
        DrawMinorGridLines="False" 
        DrawMajorBands="False"
        Visibility="Visible"
        VisibleRange="{Binding Path=AxisVisibleRange,Mode=OneWay, UpdateSourceTrigger=PropertyChanged}">
    </sci:LogarithmicNumericAxis>
</sci:SciChartSurface.XAxis>

in View model

public DoubleRange AxisVisibleRange
{
    get
    {

        DoubleRange dr = new DoubleRange(0.1,100);
        return dr;

    }
}        
1 vote
134 views

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

0 votes
105 views

Hi,

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}"/>
</Style>

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!

Thanks

0 votes
115 views

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
108 views

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

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
172 views

Hi,
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:
https://github.com/Microsoft/msbuild/issues/1688

And more specifically this:
https://stackoverflow.com/questions/43693591/how-to-migrate-wpf-projects-to-the-new-vs2017-format

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
113 views

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:
Scichart.Charting
Scichart.Core
Scichart.Data
Scichart.Drawing

In the XAML editor I added the following reference:
xmlns:s=”http://schemas.abtsoftware.co.uk/scichart”

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
140 views

Hi,

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:

<ItemsControl
        Grid.Row="1"
        Grid.Column="1"
        Grid.ColumnSpan="6"
        HorizontalContentAlignment="Stretch"
        VerticalContentAlignment="Stretch"
        PreviewMouseWheel="XAxis_MouseWheel"
        PreviewMouseUp="ListView_OnMiddleMouseUp"
        d:PreviewKeyDown="ListView_OnPreviewKeyDown"
        d:PreviewKeyUp="ListView_OnPreviewKeyUp"
        ItemsSource="{Binding ChartViewModels}"
        >
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <UniformGrid Columns="1"/>
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.ItemTemplate>
            <DataTemplate DataType="traceControl:ChartViewModel">
                <Grid
                    HorizontalAlignment="Stretch"
                    VerticalAlignment="Stretch"
                    >

                    <s:SciChartSurface Loaded="ChartSurface_Loaded" 
                                       Unloaded="ChartSurface_Unloaded"
                                       Background="White"

                                       >

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

                    </s:SciChartSurface>
                </Grid>
            </DataTemplate>
        </ItemsControl.ItemTemplate>

    </ItemsControl>

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!

Markus

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

1 vote
150 views

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.

0 votes
0 answers
148 views

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
161 views

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
183 views

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
171 views

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.

Thanks,
Mike.

Showing 1 - 50 of 2k results