Я хочу создать диаграмму, чтобы пользователь мог автомасштабировать ось y, а также иметь возможность вручную изменять ось во время выполнения. Я могу автомасштабировать до тех пор, пока ось y не будет изменена с помощью updowns, однако, как только я сменил любое значение вниз, автомасштаба не реагирует.Переключатель оси Y Y между автоматическим и ручным диапазоном
private void numUD_Graph_Ymax_ValueChanged(object sender, EventArgs e)
{
try
{
int newmax = (int)numUD_Graph_Ymax.Value;
int allowedmin = (int)numUD_Graph_Ymax.Minimum;
int allowedmax = (int)numUD_Graph_Ymax.Maximum;
if (newmax >= allowedmin && newmax <= allowedmax && newmax > chart.ChartAreas[0].AxisY.Minimum)
{
chart.ChartAreas[0].AxisY.Maximum = newmax;
chart.Update();
}
}
catch (Exception exception)
{
MessageBox.Show(exception.ToString());
}
}
private void numUD_Graph_Ymin_ValueChanged(object sender, EventArgs e)
{
try
{
int newmin = (int)numUD_Graph_Ymin.Value;
int allowedmin = (int)numUD_Graph_Ymin.Minimum;
int allowedmax = (int)numUD_Graph_Ymin.Maximum;
if (newmin >= allowedmin && newmin <= allowedmax && newmin < chart.ChartAreas[0].AxisY.Maximum)
{
chart.ChartAreas[0].AxisY.Minimum = newmin;
chart.Update();
}
}
catch (Exception exception)
{
MessageBox.Show(exception.ToString());
}
}
И это моя кнопка обработчик для автомасштабирования видимых данные:
private void btn_AutoSize_Click(object sender, EventArgs e)
{
chart.ChartAreas[0].RecalculateAxesScale();
chart.Update();
updateUI();
}
private void updateUI()
{
numUD_Graph_Xmin.Value = (decimal)chart.ChartAreas[0].AxisX.Minimum;
numUD_Graph_Xmax.Value = (decimal)chart.ChartAreas[0].AxisX.Maximum;
numUD_Graph_XInterval.Value = (decimal)chart.ChartAreas[0].AxisX.Interval;
numUD_Graph_Ymin.Value = (decimal)chart.ChartAreas[0].AxisY.Minimum;
numUD_Graph_Ymax.Value = (decimal)chart.ChartAreas[0].AxisY.Maximum;
}
Где я буду неправильно? Как автомасштабировать и загружать новые координаты в числовые аппроксимации, а также позволять пользователю дополнительно модифицировать график, используя верхние вниз.