Я пытаюсь получить местоположение мыши во время события MouseWheel. В событии MouseMove я успешно использовал HitTest и таким образом занимался своими делами, но по какой-то причине во время события MouseWheel мой HitTest всегда возвращает значение -1 для точки данных HitTest. Может ли кто-нибудь помочь мне понять это? Я включу свой код ниже.
То, что я пытаюсь выполнить, — это базовое событие масштабирования с помощью колесика мыши. Я хочу увидеть местоположение курсора, а затем добавить 1/4 просматриваемой в данный момент диаграммы с обеих сторон.
private void chData_MouseWheel(object sender, MouseEventArgs e)
{
try
{
HitTestResult pos = chData.HitTest(e.X, e.Y);
if (e.Delta < 0)
{
chData.ChartAreas[0].AxisX.ScaleView.ZoomReset();
chData.ChartAreas[0].AxisY.ScaleView.ZoomReset();
}
if (e.Delta > 0)
{
double xMin = chData.ChartAreas[0].AxisX.ScaleView.ViewMinimum;
double xMax = chData.ChartAreas[0].AxisX.ScaleView.ViewMaximum;
double yMin = chData.ChartAreas[0].AxisY.ScaleView.ViewMinimum;
double yMax = chData.ChartAreas[0].AxisY.ScaleView.ViewMaximum;
double posXStart = pos.PointIndex - (xMax - xMin) / 4;
double posXFinish = pos.PointIndex + (xMax - xMin) / 4;
double posYStart = pos.PointIndex - (yMax - yMin) / 4;
double posYFinish = pos.PointIndex + (yMax - yMin) / 4;
chData.ChartAreas[0].AxisX.ScaleView.Zoom(posXStart, posXFinish);
chData.ChartAreas[0].AxisY.ScaleView.Zoom(posYStart, posYFinish);
}
}
catch { }
}
Кстати, моя диаграмма называется chData. Я надеюсь, что это просто где-то простая опечатка.
Заранее спасибо!