我试图在 MouseWheel 事件期间获取鼠标的位置。在 MouseMove 事件中,我已成功使用 HitTest 并以这种方式开展业务,但由于某种原因,在 MouseWheel 事件期间,我的 HitTest 始终为 HitTest 数据点返回值 -1。谁能帮我解决这个问题?我将在下面包含我的代码。
我想要完成的是一个带有鼠标滚轮的基本放大事件。我想查看光标的位置,然后在任一侧添加当前可查看图表的 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。我希望这只是某个地方的一个简单的错字。
提前致谢!