Hi Peshito -
Please find the attached control demonstrating the issue.
Drag a zoom-area for example across points 9 and 10. You will see that the line will not extend beyond the PointMarks.
(turns out I cannot attach a zip. below is the inline code)
Thanks!
XAML:
<
UserControl
x:Class
=
"Debug.View.DebugChartZoom2"
d:DesignHeight
=
"300"
d:DesignWidth
=
"400"
>
<
Grid
x:Name
=
"LayoutRoot"
Background
=
"White"
>
<
Grid.RowDefinitions
>
<
RowDefinition
Height
=
"*"
/>
<
RowDefinition
Height
=
"20"
/>
</
Grid.RowDefinitions
>
<
telerik:RadChart
Grid.Row
=
"0"
Name
=
"Chart"
>
<
telerik:RadChart.DefaultView
>
<
telerik:ChartDefaultView
>
<
telerik:ChartDefaultView.ChartLegend
>
<
telerik:ChartLegend
Name
=
"Legend"
Header
=
"Legend"
UseAutoGeneratedItems
=
"True"
/>
</
telerik:ChartDefaultView.ChartLegend
>
<
telerik:ChartDefaultView.ChartArea
>
<
telerik:ChartArea
LegendName
=
"Legend"
SmartLabelsEnabled
=
"True"
>
<
telerik:ChartArea.AxisX
>
<
telerik:AxisX
AutoRange
=
"False"
LabelRotationAngle
=
"20"
LayoutMode
=
"Normal"
MajorGridLinesVisibility
=
"Visible"
/>
</
telerik:ChartArea.AxisX
>
<
telerik:ChartArea.AxisY
>
<
telerik:AxisY
AutoRange
=
"False"
/>
</
telerik:ChartArea.AxisY
>
<
telerik:ChartArea.ZoomScrollSettingsX
>
<
telerik:ZoomScrollSettings
ScrollMode
=
"ScrollAndZoom"
MinZoomRange
=
"0.01"
/>
</
telerik:ChartArea.ZoomScrollSettingsX
>
<
telerik:ChartArea.ZoomScrollSettingsY
>
<
telerik:ZoomScrollSettings
ScrollMode
=
"None"
MinZoomRange
=
"0.01"
/>
</
telerik:ChartArea.ZoomScrollSettingsY
>
</
telerik:ChartArea
>
</
telerik:ChartDefaultView.ChartArea
>
</
telerik:ChartDefaultView
>
</
telerik:RadChart.DefaultView
>
</
telerik:RadChart
>
<
telerik:RadButton
Grid.Row
=
"1"
Click
=
"ResetButton_Click"
Content
=
"Reset"
/>
</
Grid
>
</
UserControl
>
CodeBehind:
using
System.Collections.Generic;
using
System.Collections.ObjectModel;
using
System.Linq;
using
System.Windows;
using
Telerik.Windows.Controls.Charting;
namespace
Debug.View
{
public
partial
class
DebugChartZoom2
{
ObservableCollection<DebugChartZoomData2> aData;
public
DebugChartZoom2()
{
InitializeComponent();
Init();
Loaded += DebugChart_Loaded;
}
private
void
Init(){
aData =
new
ObservableCollection<DebugChartZoomData2>();
const
int
imax = 20;
for
(var i=0; i < imax; i++)
{
var aPoint =
new
DebugChartZoomData2 { X = i, Y = i };
aData.Add(aPoint);
}
}
private
ChartArea ChartArea {
get
{
return
(Chart.DefaultView.ChartArea); } }
void
DebugChart_Loaded(
object
sender, RoutedEventArgs e)
{
var sampleData =
new
List<ObservableCollection<DebugChartZoomData2>> { aData };
Chart.ItemsSource = sampleData;
var xmin = aData.Min(d => d.X);
var xmax = aData.Max(d => d.X);
var ymin = aData.Min(d => d.Y);
var ymax = aData.Max(d => d.Y);
ChartArea.AxisX.MinValue = xmin;
ChartArea.AxisX.MaxValue = xmax;
ChartArea.AxisY.MinValue = ymin;
ChartArea.AxisY.MaxValue = ymax;
var aMapping = CreateSeriesMapping(
"A"
, 0);
Chart.SeriesMappings.Add(aMapping);
}
private
SeriesMapping CreateSeriesMapping(
string
_label,
int
_index)
{
var smapping =
new
SeriesMapping { CollectionIndex = _index, LegendLabel = _label, SeriesDefinition =
new
LineSeriesDefinition() };
smapping.ItemMappings.Add
(
new
ItemMapping { DataPointMember = DataPointMember.XValue, FieldName =
"X"
, FieldType =
typeof
(
double
) });
smapping.ItemMappings.Add
(
new
ItemMapping { DataPointMember = DataPointMember.YValue, FieldName =
"Y"
, FieldType =
typeof
(
double
) });
return
(smapping);
}
private
void
ResetButton_Click(
object
sender_, RoutedEventArgs routedEventArgs){
ChartArea.ZoomScrollSettingsX.RangeStart = 0;
ChartArea.ZoomScrollSettingsX.RangeEnd = 1;
}
}
public
class
DebugChartZoomData2
{
public
double
X {
get
;
set
; }
public
double
Y {
get
;
set
; }
}
}