Hi,
is it a known bug when DateTimeContinuousAxis PlotMode is set to OnTicksPadded, when the chart is zoomed, the XAxis drifted depending on the zoom value? It works fine when PlotMode is set to OnTicks, but there's no padding with the chart border (that;s why I need OnTicksPadded).
Please see the latest picture.(the first picture, wpf_radchartview_plotmode_zoom_1.png,
doesn't show the problem clearly).
is it a known bug when DateTimeContinuousAxis PlotMode is set to OnTicksPadded, when the chart is zoomed, the XAxis drifted depending on the zoom value? It works fine when PlotMode is set to OnTicks, but there's no padding with the chart border (that;s why I need OnTicksPadded).
Please see the latest picture.(the first picture, wpf_radchartview_plotmode_zoom_1.png,
doesn't show the problem clearly).
3 Answers, 1 is accepted
0
Hello,
Thank you for your report. We were not aware of this issue. Can you please help us reproduce this? Can you send us your code so our developers can track down and isolate the problem?
Thank you very much in advance.
All the best,
Vladimir Milev
the Telerik team
Thank you for your report. We were not aware of this issue. Can you please help us reproduce this? Can you send us your code so our developers can track down and isolate the problem?
Thank you very much in advance.
All the best,
Vladimir Milev
the Telerik team
Sharpen your .NET Ninja skills! Attend Q1 webinar week and get a chance to win a license! Book your seat now >>
0
Charly
Top achievements
Rank 1
answered on 13 Mar 2012, 01:16 PM
Hi,
How do I attach VS project?
WPF Telerik version:
2012.1.215.40
MVVM Light toolkit:
3.0.0.29165
How to reproduce:
1. Set PlotMode to OnTicksPadded
2. Zoom to the first datapoint.
3. Observe date on trackball info and on X Axis and check if both are in-sync.
Another problem:
Distance from chart border to the first data point is very large when zoom value is high.
This distance should not change regardless of zoom value.
MainWindow.xaml
MainViewMmodel.cs
SpO2Reading.cs
How do I attach VS project?
WPF Telerik version:
2012.1.215.40
MVVM Light toolkit:
3.0.0.29165
How to reproduce:
1. Set PlotMode to OnTicksPadded
2. Zoom to the first datapoint.
3. Observe date on trackball info and on X Axis and check if both are in-sync.
Another problem:
Distance from chart border to the first data point is very large when zoom value is high.
This distance should not change regardless of zoom value.
MainWindow.xaml
<
Window
x:Class
=
"TelerikWPFChartViewZoomBug.MainWindow"
Title
=
"MainWindow"
Height
=
"300"
Width
=
"300"
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
xmlns:chart
=
"clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.Chart"
xmlns:chartView
=
"clr-namespace:Telerik.Windows.Controls.ChartView;assembly=Telerik.Windows.Controls.Chart"
DataContext
=
"{Binding Main, Source={StaticResource Locator}}"
>
<
Window.Resources
>
<
ResourceDictionary
>
<
ResourceDictionary.MergedDictionaries
>
<
ResourceDictionary
Source
=
"Skins/MainSkin.xaml"
/>
</
ResourceDictionary.MergedDictionaries
>
</
ResourceDictionary
>
</
Window.Resources
>
<
Grid
x:Name
=
"LayoutRoot"
>
<
chart:ChartDataSource
x:Name
=
"ChartDataSource1"
ItemsSource
=
"{Binding Readings}"
SamplingUnit
=
"Minute"
/>
<
chart:RadCartesianChart
x:Name
=
"PART_ChartArea"
Grid.Row
=
"1"
Grid.Column
=
"1"
>
<
chart:RadCartesianChart.Resources
>
<
DataTemplate
x:Key
=
"LabelTemplate"
>
<
StackPanel
Orientation
=
"Vertical"
>
<
Border
Background
=
"Pink"
Padding
=
"2,0,2,0"
>
<
TextBlock
Text
=
"{Binding StringFormat=\{0:N0\}}"
HorizontalAlignment
=
"Center"
Foreground
=
"White"
/>
</
Border
>
</
StackPanel
>
</
DataTemplate
>
<
DataTemplate
x:Key
=
"PointTemplate"
>
<
StackPanel
Orientation
=
"Vertical"
>
<
Ellipse
Height
=
"8"
Width
=
"8"
Stroke
=
"Pink"
Fill
=
"White"
>
</
Ellipse
>
</
StackPanel
>
</
DataTemplate
>
</
chart:RadCartesianChart.Resources
>
<
chart:RadCartesianChart.Behaviors
>
<
chartView:ChartPanAndZoomBehavior
ZoomMode
=
"Horizontal"
PanMode
=
"Horizontal"
/>
<!--
<chartView:ChartTooltipBehavior />
-->
<
chartView:ChartTrackBallBehavior
ShowTrackInfo
=
"True"
ShowIntersectionPoints
=
"True"
/>
</
chart:RadCartesianChart.Behaviors
>
<
telerik:RadCartesianChart.TooltipTemplate
>
<
DataTemplate
>
<
Border
Background
=
"White"
BorderBrush
=
"Black"
BorderThickness
=
"1"
Padding
=
"5"
CornerRadius
=
"3"
>
<
StackPanel
Orientation
=
"Vertical"
>
<
TextBlock
>
<
Run
Text
=
"Timestamp: "
/>
<
Run
Text
=
"{Binding Category, StringFormat=\{0:dd-MMM-yy hh:mm tt\}}"
/>
</
TextBlock
>
<
TextBlock
>
<
Run
Text
=
"SpO2: "
/>
<
Run
Text
=
"{Binding DataItem.SpO2, StringFormat=\{0:N0\}}"
/>
<
Run
Text
=
"%"
/>
</
TextBlock
>
</
StackPanel
>
</
Border
>
</
DataTemplate
>
</
telerik:RadCartesianChart.TooltipTemplate
>
<
chart:RadCartesianChart.HorizontalAxis
>
<
chartView:DateTimeContinuousAxis
LabelFormat
=
"dd-MMM
HH:mm"
LabelFitMode
=
"MultiLine"
LabelInterval
=
"2"
PlotMode
=
"OnTicksPadded"
>
<
telerik:DateTimeContinuousAxis.PanZoomBarStyle
>
<
Style
TargetType
=
"telerik:PanZoomBar"
>
<
Setter
Property
=
"Height"
Value
=
"30"
/>
</
Style
>
</
telerik:DateTimeContinuousAxis.PanZoomBarStyle
>
</
chartView:DateTimeContinuousAxis
>
</
chart:RadCartesianChart.HorizontalAxis
>
<
chart:RadCartesianChart.VerticalAxis
>
<
chartView:LinearAxis
Minimum
=
"50"
Maximum
=
"110"
/>
</
chart:RadCartesianChart.VerticalAxis
>
<
chart:RadCartesianChart.Series
>
<
chartView:LineSeries
x:Name
=
"LineSeries1"
Stroke
=
"Pink"
StrokeThickness
=
"2"
ShowLabels
=
"True"
CategoryBinding
=
"Timestamp"
ValueBinding
=
"SpO2"
ItemsSource
=
"{Binding ElementName=ChartDataSource1}"
PointTemplate
=
"{StaticResource PointTemplate}"
>
<
chartView:LineSeries.LabelDefinitions
>
<
telerik:ChartSeriesLabelDefinition
Template
=
"{StaticResource LabelTemplate}"
Margin
=
"20,0,0,0"
>
</
telerik:ChartSeriesLabelDefinition
>
</
chartView:LineSeries.LabelDefinitions
>
<
chartView:LineSeries.TrackBallInfoTemplate
>
<
DataTemplate
>
<
StackPanel
Orientation
=
"Vertical"
>
<
TextBlock
>
<
Run
Text
=
"Timestamp: "
/>
<
Run
Text
=
"{Binding DataPoint.Category, StringFormat=\{0:dd-MMM-yy hh:mm tt\}}"
/>
</
TextBlock
>
<
TextBlock
>
<
Run
Text
=
"SpO2: "
/>
<
Run
Text
=
"{Binding DataPoint.Value, StringFormat=\{0:N0\}}"
/>
<
Run
Text
=
"%"
/>
</
TextBlock
>
</
StackPanel
>
</
DataTemplate
>
</
chartView:LineSeries.TrackBallInfoTemplate
>
</
chartView:LineSeries
>
</
chart:RadCartesianChart.Series
>
</
chart:RadCartesianChart
>
</
Grid
>
</
Window
>
MainViewMmodel.cs
public class MainViewModel : ViewModelBase
{
public ObservableCollection<
Model.SpO2Reading
> Readings { get; set; }
/// <
summary
>
/// Initializes a new instance of the MainViewModel class.
/// </
summary
>
public MainViewModel()
{
if (IsInDesignMode)
{
// Code runs in Blend --> create design time data.
}
else
{
// Code runs "for real"
Readings = new ObservableCollection<
SpO2Reading
>();
for (int i = 0; i < 200; i++)
{
var rand = new Random(DateTime.Now.Millisecond * i);
var reading = new Model.SpO2Reading();
reading.SpO2 = 80 + Math.Abs((i * rand.Next()) % 20);
reading.Timestamp = DateTime.Now.AddHours(10 * i).AddMinutes(13 * i);
reading.Unit = "%";
Readings.Add(reading);
}
}
}
}
SpO2Reading.cs
public class SpO2Reading : INotifyPropertyChanged
{
private string _unit;
public string Unit
{
get { return _unit; }
set { _unit = value; NotifyPropertyChanged("Unit"); }
}
private int _spO2;
public int SpO2
{
get { return _spO2; }
set { _spO2 = value; NotifyPropertyChanged("SpO2"); }
}
private DateTime _timestamp;
public DateTime Timestamp
{
get { return _timestamp; }
set { _timestamp = value; NotifyPropertyChanged("Timestamp"); }
}
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
0
Hi Charly,
You can attach a whole zipped project by opening a support ticket. It would be very helpful for us if you're able to do that, as there seem to be a few things missing from the pasted code snippets and the project is not runnable.
Kind regards,
Nikolay
the Telerik team
You can attach a whole zipped project by opening a support ticket. It would be very helpful for us if you're able to do that, as there seem to be a few things missing from the pasted code snippets and the project is not runnable.
Kind regards,
Nikolay
the Telerik team
Sharpen your .NET Ninja skills! Attend Q1 webinar week and get a chance to win a license! Book your seat now >>