Alamakanambra
Alamakanambra

Reputation: 7861

Telerik Chart UI is slow with 1000 values

So, I have simple xaml (UWP) page with telerik chart:

<Grid>
        <telerikChart:RadCartesianChart Background="Beige" >
            <telerikChart:RadCartesianChart.Behaviors>
                <telerikChart:ChartPanAndZoomBehavior   ZoomMode="Both" PanMode="Both"/>
                <telerikChart:ChartTooltipBehavior  />
            </telerikChart:RadCartesianChart.Behaviors>
            <telerikChart:RadCartesianChart.VerticalAxis>
                <telerikChart:LinearAxis Padding="0" Title=" (m/s/s)"  Foreground="Black"/>
            </telerikChart:RadCartesianChart.VerticalAxis>
            <telerikChart:RadCartesianChart.HorizontalAxis>
                <telerikChart:LinearAxis Title="Time (s)" Foreground="Black"/>
            </telerikChart:RadCartesianChart.HorizontalAxis>
            <telerikChart:RadCartesianChart.Grid>
                <telerikChart:CartesianChartGrid MajorLinesVisibility="XY"/>
            </telerikChart:RadCartesianChart.Grid>



            <telerikChart:ScatterLineSeries   ItemsSource="{x:Bind Values, Mode=OneWay}">
                <telerikChart:ScatterLineSeries.XValueBinding>
                    <telerikChart:PropertyNameDataPointBinding PropertyName="XValue" />
                </telerikChart:ScatterLineSeries.XValueBinding>
                <telerikChart:ScatterLineSeries.YValueBinding>
                    <telerikChart:PropertyNameDataPointBinding PropertyName="YValue" />
                </telerikChart:ScatterLineSeries.YValueBinding>
            </telerikChart:ScatterLineSeries>


        </telerikChart:RadCartesianChart>

    </Grid>

Code behind creates 1000 values for chart control:

        public MainPage()
        {
            this.InitializeComponent();
            for (int i = 0; i < 1000; i++)
            {
                var val = new ValueForChart() { XValue = i, YValue = Math.Sin( i / 2d )};
                Values.Add(val);
            }
        }

        public List<ValueForChart> Values { get; set; } = new List<ValueForChart>();
//...
  public class ValueForChart
    {
        public double XValue { get; set; }
        public double YValue { get; set; }
    }

UI is rendered fast, but is unusable for panning, zooming or freezes when window is resized. 1000 values is not that much... I think RadChart should handle much more..

Am I doing something wrong?

Upvotes: 2

Views: 158

Answers (0)

Related Questions