Quantcast
Channel: Our ComponentOne » All Posts
Viewing all articles
Browse latest Browse all 14170

Reply To: How to display XY co-ordinates on mouse over in chart with multiple Y axis.

$
0
0

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)
{

}
}


Viewing all articles
Browse latest Browse all 14170

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>