Ya, In the example when we select chart area the Zoomout button is enabled, but I am not able to do it in my Code.
Please find the code I am using:
.Xaml
<
telerik:ChartArea.ZoomScrollSettingsX>
<telerik:ZoomScrollSettings ScrollMode="ScrollAndZoom"
MinZoomRange="{Binding MinZoomRange, Mode=TwoWay}"
RangeEnd ="{Binding RangeEnd, Mode=TwoWay}"
RangeStart ="{Binding RangeStart, Mode=TwoWay}" />
</telerik:ChartArea.ZoomScrollSettingsX>
<telerik:RadButton Height="18" Width="20" BorderThickness="0" Margin="100,0,0,0" Name="btnZoomOut" Command="{Binding ZoomOutCommand}">
<Image x:Name = "imgZoomOut" Source="Images/ZoomOut.jpg" Width="15" Margin="0,0,2,0" ToolTipService.ToolTip="Chart ZoomOut"></Image>
</telerik:RadButton>
I am using a View.cs ,
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Telerik.Windows.Controls.Charting;
using Telerik.Windows.Controls;
using System.Collections.Generic;
using System.ComponentModel;
namespace SODANORTEL
{
public class View:INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
ICommand _zoomInCommand;
public ICommand ZoomInCommand
{
get
{
if (_zoomInCommand == null)
{
_zoomInCommand = new DelegateCommand(ZoomIn, CanZoomIn);
}
return _zoomInCommand;
}
}
ICommand _zoomOutCommand;
public ICommand ZoomOutCommand
{
get
{
if (_zoomOutCommand == null)
{
_zoomOutCommand = new DelegateCommand(ZoomOut, CanZoomOut);
}
return _zoomOutCommand;
}
}
private double _MaxZoomRange;
public double MaxZoomRange
{
get { return _MaxZoomRange; }
set
{
{
_MaxZoomRange = value;
OnPropertyChanged("MaxZoomRange");
}
}
}
//private double _Range;
public double Range
{
get { return RangeEnd - RangeStart; }
}
private double _RangeEnd;
public double RangeEnd
{
get { return _RangeEnd; }
set
{
{
_RangeEnd = value;
OnPropertyChanged("RangeEnd");
}
}
}
private double _RangeStart;
public double RangeStart
{
get { return _RangeStart; }
set
{
{
_RangeStart = value;
OnPropertyChanged("RangeStart");
}
}
}
private double _MinZoomRange;
public double MinZoomRange
{
get { return _MinZoomRange; }
set
{
{
_MinZoomRange = value;
OnPropertyChanged("MinZoomRange");
}
}
}
public void OnPropertyChanged(string propertyName)
{
if (this.PropertyChanged != null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
private List<DataObject> _ItemsSource;
public List<DataObject> ItemsSource
{
get { return _ItemsSource; }
set
{
{
_ItemsSource = value;
OnPropertyChanged("ItemsSource");
}
}
}
//
// Summary:
// Gets or sets the scroll mode.
public ScrollMode ScrollMode { get; set; }
//
// Summary:
// Gets or sets the slider selection end.
public double SliderSelectionEnd { get; set; }
//
// Summary:
// Gets or sets the slider selection start.
public double SliderSelectionStart { get; set; }
public void ZoomIn(object parameter)
{
double zoomCenter = RangeStart + (Range / 2);
double newRange = Math.Max(MinZoomRange, Range) / 2;
RangeStart = Math.Max(0, zoomCenter - (newRange / 2));
RangeEnd = Math.Min(1, zoomCenter + (newRange / 2));
((DelegateCommand)_zoomInCommand).InvalidateCanExecute();
((DelegateCommand)_zoomOutCommand).InvalidateCanExecute();
}
public bool CanZoomIn(object parameter)
{
return Range > MinZoomRange;
}
public void ZoomOut(object parameter)
{
double zoomCenter = RangeStart + (Range / 2);
double newRange = Math.Min(1, Range) * 2;
if (zoomCenter + (newRange / 2) > 1)
zoomCenter = 1 - (newRange / 2);
else if (zoomCenter - (newRange / 2) < 0)
zoomCenter = newRange / 2;
RangeStart = Math.Max(0, zoomCenter - newRange / 2);
RangeEnd = Math.Min(1, zoomCenter + newRange / 2);
((DelegateCommand)_zoomInCommand).InvalidateCanExecute();
((DelegateCommand)_zoomOutCommand).InvalidateCanExecute();
}
public bool CanZoomOut(object parameter)
{
return Range < 1d;
}
public View()
{
MinZoomRange = 0.001;
//Range = 1.0;
RangeEnd = 1.0;
RangeStart = 0.0;
var dataSource = new List<DataObject>();
for (int i = 0; i < 10; i++)
{
dataSource.Add(new DataObject() { Date = DateTime.Today.AddDays(i), Value_data = i });
};
ItemsSource = dataSource;
}
private ChartArea _chartArea;
public ChartArea ChartArea
{
get
{
return this._chartArea;
}
set
{
this._chartArea = value;
}
}
}
}
Thanks in Advance,