ズームを設定したチャート (win-forms Visual Studio に付属の標準チャート) があります。このチャートがズームされるたびに関数を実行したいのですが、ズームでトリガーされるイベントが見つかりません。イベントのリストを調べたところ、「AxisViewChanged」だけが機能すると思われましたが、これは多くの変更でトリガーされ、ズームの変更だけを特定する方法がわかりません。私が見逃しているズームイベントはありますか?それとも存在しないだけですか?
5198 次
1 に答える
3
You can do something like this
double oldSelStart = -1;
double oldSelEnd = -1;
private void chart1_AxisViewChanged(object sender, ViewEventArgs e)
{
double newSelStart = chart1.ChartAreas["Default"].CursorX.SelectionStart;
double newSelEnd = chart1.ChartAreas["Default"].CursorX.SelectionEnd;
const double TOLERANCE = 0.1;
if (Math.Abs(oldSelEnd - newSelEnd) > TOLERANCE || Math.Abs(newSelStart - oldSelStart) > TOLERANCE)
{
oldSelStart = newSelStart;
oldSelEnd = newSelEnd;
//Zoom has actually changed do your stuff
}
}
Basically you remember your old zoom ranges and handle AxisViewChanged yourself and determine if the zoom has actually changed
于 2013-04-01T16:35:39.743 に答える