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と呼ばれています。これがどこかの単純なタイプミスであることを願っています。
前もって感謝します!