Предотвратить изменение Y2Axis, когда пользователь увеличивает ZedGraph

Я использую один ZedGraphControl для отображения 2 кривых, одна на основной оси YA, а другая на оси Y2. Я хочу сделать так, чтобы, когда пользователь увеличивает данные вручную, изменяется только масштаб на YAxis.

Я не мог найти какой-либо способ блокировки Y2Axis, фактически предотвратить изменения в первую очередь. Затем я подумал, что могу просто отменить любые изменения оси в AxisChangeEvent, но изменение вызова снова вызывает это событие, что приводит к бесконечному циклу.

1 ответ

Решение

В типичной манере этого сайта я придумал ответ, пытаясь правильно задать вопрос.

Я просто установил логический флаг в начале моего AxisChangeEvent, чтобы предотвратить рекурсивный вызов. Затем сбросьте масштаб оси Y2:

    private bool resizingAxis = false;

    void GraphPane_AxisChangeEvent(ZedGraph.GraphPane pane)
    {
        if (!resizingAxis)
        {
            resizingAxis = true;
            this.zedGraphControl1.GraphPane.Y2Axis.ResetAutoScale(pane, this.CreateGraphics());
            resizingAxis = false;
        }
    }

Это похоже на взлом, и я хотел бы услышать любые другие возможные решения, хотя.

Другие вопросы по тегам