Reputation: 7861
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