У меня есть элемент управления MsChart с несколькими сериями SeriesChartType.Polar. В событии MouseMove диаграммы я проверяю, находится ли над DataPoint, и если да, я создаю подсказку, содержащую координаты DataPoint под курсором мыши.DataPoints, скрытые под Axis и AxisLabel
Он хорошо работает для углов (это полярная диаграмма) от 0 до 347 град. Остальная часть DataPoints скрыта под ChartElementType.Axis и/или ChartElementType.AxisLabel, поэтому я не могу получить DataPoint.PointIndex.
private void chart0_MouseMove(object sender, MouseEventArgs e)
{
var pos = e.Location;
HitTestResult result = chart0.HitTest(e.X, e.Y);
if (result.ChartElementType == ChartElementType.DataPoint)
{
var selectedValueY = chart0.Series[result.Series.Name].Points[result.PointIndex].YValues[0];
var selectedValueX = chart0.Series[result.Series.Name].Points[result.PointIndex].XValue;
selectedValueY = Math.Round(selectedValueY, 2);
ToolTipChart.Show(selectedValueX.ToString() + "°; " + selectedValueY.ToString() + " m", chart0, pos.X, pos.Y - 30);
}
else
ToolTipChart.Hide(chart0);
}
При наведении курсора мыши на скрытых точек данных -> (result.ChartElementType == ChartElementType.Axis) или (result.ChartElementType == ChartElementType.AxisLabel) вместо этого.
Я попытался отключить ось, затем прочитал положение мыши, а затем включил ось, но она слишком медленная, и пользователь видит мигание оси на экране.
Есть ли способ переместить «слой DataPoint» поверх диаграммы, чтобы он не находился под слоем «Ось»?
Ilustration скрытых точек данных:
Это он. Большое спасибо! –