Ребята помогите с этим вопросом пожалуйста.
Небольшая история. При выборе нескольких параметров в checkedlistbox (то есть поставив галочки в нем) и нажимая на checkbox вверху на скрине под названием "вкл. дополнительные оси Y" рисуется график такой как на скрине с двумя дополнительным осями справа.
А ВОПРОС вот в чем : изменяя максимумы и минимумы основной левой оси Y происходит автоматическое изменение масштаба графика, но вот изменение максимумов и минимумов дополнительных правых осей не приводит к изменению масштаба графика, а только к изменениям самих осей, и поэтому график становится некорректным.
Часть кода связанная с построением дополнительных осей:
Код:
public List<System.Windows.Forms.DataVisualization.Charting.ChartArea> t = new List<System.Windows.Forms.DataVisualization.Charting.ChartArea>();
public System.Windows.Forms.DataVisualization.Charting.ChartArea areaAxis;
public System.Windows.Forms.DataVisualization.Charting.ChartArea areaSeries;
public void CreateYAxis(System.Windows.Forms.DataVisualization.Charting.Chart chart, System.Windows.Forms.DataVisualization.Charting.ChartArea area, System.Windows.Forms.DataVisualization.Charting.Series series, float axisOffset, float labelsSize)
{
// Create new chart area for original series
areaSeries = chart.ChartAreas.Add("ChartArea_" + series.Name);
areaSeries.BackColor = Color.Transparent;
areaSeries.BorderColor = Color.Transparent;
areaSeries.Position.FromRectangleF(area.Position.ToRectangleF());
areaSeries.InnerPlotPosition.FromRectangleF(area.InnerPlotPosition.ToRectangleF());
areaSeries.AxisX.MajorGrid.Enabled = false;
areaSeries.AxisX.MajorTickMark.Enabled = false;
areaSeries.AxisX.LabelStyle.Enabled = false;
areaSeries.AxisY.MajorGrid.Enabled = false;
areaSeries.AxisY.MajorTickMark.Enabled = false;
areaSeries.AxisY.LabelStyle.Enabled = false;
//areaSeries.AxisY.IsStartedFromZero = area.AxisY.IsStartedFromZero;
//areaSeries.AxisY.Interval = 2;
series.ChartArea = areaSeries.Name;
// Create new chart area for axis
areaAxis = chart.ChartAreas.Add("AxisY_" + series.ChartArea);
areaAxis.BackColor = Color.Transparent;
areaAxis.BorderColor = Color.Transparent;
areaAxis.Position.FromRectangleF(chart.ChartAreas[series.ChartArea].Position.ToRectangleF());
areaAxis.InnerPlotPosition.FromRectangleF(chart.ChartAreas[series.ChartArea].InnerPlotPosition.ToRectangleF());
t.Add(areaAxis);
// Create a copy of specified series
System.Windows.Forms.DataVisualization.Charting.Series seriesCopy = chart.Series.Add(series.Name + "_Copy");
seriesCopy.ChartType = series.ChartType;
//series.YAxisType = AxisType.Secondary;
// series.YAxisType = AxisType.Secondary;
foreach (DataPoint point in series.Points)
{
seriesCopy.Points.AddXY(point.XValue, point.YValues[0]);
}
// AddGrafAnotherVremeni(chart1.Series[NumberSeries].Name);
// Hide copied series
seriesCopy.IsVisibleInLegend = false;
seriesCopy.Color = Color.Transparent;
seriesCopy.BorderColor = Color.Transparent;
seriesCopy.ChartArea = areaAxis.Name;
// Disable drid lines & tickmarks
areaAxis.AxisX.LineWidth = 0;
areaAxis.AxisX.MajorGrid.Enabled = false;
areaAxis.AxisX.MajorTickMark.Enabled = false;
areaAxis.AxisX.LabelStyle.Enabled = false;
areaAxis.AxisY.MajorGrid.Enabled = false;
//areaAxis.AxisY.MaximumAutoSize = false;
//areaAxis.AxisY.IsStartedFromZero = area.AxisY.IsStartedFromZero;
areaAxis.AxisY.TitleFont = new System.Drawing.Font("Times New Roman", 14, FontStyle.Regular);
areaAxis.AxisY.LabelStyle.Font = area.AxisY.LabelStyle.Font;
areaAxis.AxisY.IsLabelAutoFit = true;
areaAxis.AxisX.IsLabelAutoFit = true;
// areaAxis.AxisY.Interval = (chart1.ChartAreas[0].AxisY.Maximum - chart1.ChartAreas[0].AxisY.Minimum) / 4;
// areaAxis.AxisY.Minimum
//chart1.ChartAreas[0].AxisY.Maximum
//main.chart1.ChartAreas[0].AxisY.Maximum
// Adjust area position
chart1.ChartAreas[0].Position.Auto = false;
areaAxis.Position.X -= labelsSize - 50;
areaAxis.InnerPlotPosition.X += labelsSize + 50;
}