Version: 2013 Q1 with SP1
In a RadChart with zoom enabled, trying to zoom-in causes automatic removal of the underlying DataSeries object from the ChartArea.DataSeries collection. I have attached some sample code that reproduces the issue. Note that this behavior is reproduced both programatically, and through UI interaction (by resizing the zoom bar).
XAML code:
VB code behind:
In a RadChart with zoom enabled, trying to zoom-in causes automatic removal of the underlying DataSeries object from the ChartArea.DataSeries collection. I have attached some sample code that reproduces the issue. Note that this behavior is reproduced both programatically, and through UI interaction (by resizing the zoom bar).
XAML code:
<Window x:Class="MainWindow" Title="MainWindow" Height="350" Width="525" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" Loaded="Window_Loaded"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="*"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <telerik:RadChart Name="chart" telerik:StyleManager.Theme="Summer" MaxWidth="5000" MaxHeight="5000" FontFamily="Segoe UI" FontSize="10" Background="Transparent" PaletteBrushesRepeat="False"> <telerik:RadChart.DefaultView> <telerik:ChartDefaultView> <telerik:ChartDefaultView.ChartLegend> <telerik:ChartLegend Name="chLegend" Background="Transparent" UseAutoGeneratedItems="True" FontSize="9" IsHitTestVisible="False"/> </telerik:ChartDefaultView.ChartLegend> <telerik:ChartDefaultView.ChartArea> <telerik:ChartArea EnableAnimations="True" LegendName="chLegend"> <telerik:ChartArea.AxisX> <telerik:AxisX/> </telerik:ChartArea.AxisX> <telerik:ChartArea.AxisY> <telerik:AxisY/> </telerik:ChartArea.AxisY> <telerik:ChartArea.AnimationSettings> <telerik:AnimationSettings TotalSeriesAnimationDuration="00:00:00.600" /> </telerik:ChartArea.AnimationSettings> <telerik:ChartArea.DataSeries> <telerik:DataSeries LegendLabel="Product Sales"> <telerik:DataSeries.Definition> <telerik:BarSeriesDefinition/> </telerik:DataSeries.Definition> </telerik:DataSeries> </telerik:ChartArea.DataSeries> </telerik:ChartArea> </telerik:ChartDefaultView.ChartArea> </telerik:ChartDefaultView> </telerik:RadChart.DefaultView> </telerik:RadChart> <Button x:Name="btnSetZoom" Grid.Row="1" Padding="3" Content="Click to set zoom" HorizontalAlignment="Right" Click="btnSetZoom_Click"/> </Grid></Window>VB code behind:
Imports Telerik.Windows.Controls.ChartingClass MainWindow Private Sub btnSetZoom_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Me.SetZoom() End Sub Private Sub Window_Loaded(sender As System.Object, e As System.Windows.RoutedEventArgs) Me.InitChart() Me.GenerateData() End Sub Private Sub InitChart() With Me.chart.DefaultView.ChartArea.AxisX .AutoRange = True .IsZeroBased = True End With With Me.chart.DefaultView.ChartArea.AxisX .AutoRange = True .IsZeroBased = True End With Dim zoomX As ZoomScrollSettings = chart.DefaultView.ChartArea.ZoomScrollSettingsX zoomX.ScrollMode = ScrollMode.ScrollAndZoom zoomX.RangeStart = 0 zoomX.RangeEnd = 1 Dim zoomY As ZoomScrollSettings = chart.DefaultView.ChartArea.ZoomScrollSettingsY zoomY.ScrollMode = ScrollMode.ScrollAndZoom zoomY.RangeStart = 0 zoomY.RangeEnd = 1 End Sub Private Sub GenerateData() Dim data As New List(Of DataPoint)() For Each i In Enumerable.Range(0, 20) Dim p = New DataPoint(i, i + 1.0) data.Add(p) Next Me.chart.DefaultView.ChartArea.DataSeries(0).AddRange(data) End Sub Private Sub SetZoom() Dim zoomX As ZoomScrollSettings = chart.DefaultView.ChartArea.ZoomScrollSettingsX zoomX.RangeStart = 0.2 zoomX.RangeEnd = 0.7 End SubEnd Class