Первое, что приходит в голову, это то, что ваша проблема связана с многократным масштабированием.
Как вы заметили, по умолчанию кнопка сброса масштаба (точно так же, как метод ZoomReset) не полностью сбрасывает масштаб, но восстанавливает предыдущее состояние просмотра, то есть, если вы увеличили масштаб более одного раза, она возвращает только к предыдущему увеличенному виду.
Чтобы полностью сбросить масштаб, вы можете использовать этот код:
while (chart1.ChartAreas[0].AxisX.ScaleView.IsZoomed)
chart1.ChartAreas[0].AxisX.ScaleView.ZoomReset();
while (chart1.ChartAreas[0].AxisY.ScaleView.IsZoomed)
chart1.ChartAreas[0].AxisY.ScaleView.ZoomReset();
И наоборот, если вам нравится поведение сброса масштаба по умолчанию, у вас должно быть две кнопки для двух осей, потому что можно иметь различное количество состояний просмотра для другой оси.
Другая возможность заключается в том, что вы масштабируете вторичную ось, например AxisX2
или AxisY2
(не уверен, но я думаю, что это зависит от типа диаграммы), поэтому вы должны сбросить их (или, чтобы быть в безопасности) , просто сбросьте все оси ...).