in xaml code-
in code behind
public MainWindow()
{
InitializeComponent();
AddData();
}
private void AddData()
{
chart.View.Axes.Remove(chart.View.Axes[1]);
chart.View.AxisX.ScrollBar = new AxisScrollBar() { Visibility = Visibility.Visible, ScrollBarPosition = AxisScrollBarPosition.Auto };
chart.View.AxisY.ScrollBar = new AxisScrollBar() { Visibility = Visibility.Visible, ScrollBarPosition = AxisScrollBarPosition.Auto };
Axis yAxis = new Axis();
yAxis.Name = "Y";
yAxis.Max = 300;
yAxis.Min = 0;
yAxis.AxisType = AxisType.Y;
yAxis.MajorGridStrokeThickness = 1;
yAxis.IsDependent = false;
yAxis.Position = AxisPosition.Far;
yAxis.Foreground = new SolidColorBrush(Colors.Blue);
chart.View.Axes.Add(yAxis);
XYDataSeries ds = new XYDataSeries()
{
XValueBinding = new Binding("X"),
ValueBinding = new Binding("Y"),
ConnectionStrokeThickness = 1,
Label = "raw",
ConnectionStroke = new SolidColorBrush(Colors.Blue),
ItemsSource = _pts
,
AxisY = yAxis.Name,
};
ds.PlotElementLoaded += new EventHandler(ds_PlotElementLoaded);
chart.Data.Children.Add(ds);
chart.View.Axes[2].ScrollBar = new AxisScrollBar() { Visibility = Visibility.Visible, ScrollBarPosition = AxisScrollBarPosition.Auto };
Update1();
SetScale1(0.25, 1);
}
void ds_PlotElementLoaded(object sender, EventArgs e)
{
PlotElement pe = sender as PlotElement;
if (pe != null)
{
pe.MouseMove += pe_MouseMove;
}
}
void pe_MouseMove(object sender, MouseEventArgs e)
{
double closestDistance = double.MaxValue;
int closestDataIndex;
int closestSeriesIndex = new int();
double d;
int index = new int();
for (int i = 0; i < chart.Data.Children.Count; i++)
{
index = chart.View.DataIndexFromPoint(e.GetPosition(chart), i, MeasureOption.XY, out d);
if (d < closestDistance)
{
closestDistance = d;
closestDataIndex = index;
closestSeriesIndex = i;
}
}
if (closestSeriesIndex == 0)
MessageBox.Show("Primary Axis Series : \nX : " + ((XYDataSeries)chart.Data.Children[closestSeriesIndex]).XValues[index].ToString() +
"\nY : " + ((XYDataSeries)chart.Data.Children[closestSeriesIndex]).Values[index].ToString());
else if (closestSeriesIndex == 1)
MessageBox.Show("Auxillary Axis Series : \nX : " + ((XYDataSeries)chart.Data.Children[closestSeriesIndex]).XValues[index].ToString() +
"\nY : " + ((XYDataSeries)chart.Data.Children[closestSeriesIndex]).Values[index].ToString());
}
void Update1()
{
try
{
int counter = 1;
foreach (DataSeries currSeries in chart.Data.Children)
{
for (int i = 0; i < 10; i++)
{
_pts.Add(new Point(counter++, counter * 10));
}
};
}
catch (Exception ex)
{
}
}