3

我有一个图表(win-forms 视觉工作室附带的标准图表),我已经设置了放大。每次缩放此图表时,我都想运行一个函数,但是我找不到缩放时触发的事件。我查看了事件列表,我认为唯一可行的是“AxisViewChanged”,但是这是在许多更改时触发的,我不知道如何仅找出缩放更改。我错过了一些缩放事件吗?还是这不存在?

4

1 回答 1

3

你可以做这样的事情

    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
        }
    }

基本上,您会记住旧的缩放范围并自己处理 AxisViewChanged 并确定缩放是否实际发生了变化

于 2013-04-01T16:35:39.743 回答