3

ズームを設定したチャート (win-forms Visual Studio に付属の標準チャート) があります。このチャートがズームされるたびに関数を実行したいのですが、ズームでトリガーされるイベントが見つかりません。イベントのリストを調べたところ、「AxisViewChanged」だけが機能すると思われましたが、これは多くの変更でトリガーされ、ズームの変更だけを特定する方法がわかりません。私が見逃しているズームイベントはありますか?それとも存在しないだけですか?

4

1 に答える 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 に答える