0

何かわかりません。customlabels を使用しない場合、チャートはデフォルトのラベルを使用します。そして、スクロールバーを動かしても、グラフのサイズは調整されません。Chart ビューは元のサイズを維持します。

しかし、このコードを使用して行 0のラベルを変更すると(他の行にはこの問題はありません)。

chart1.ChartAreas[0].AxisY2.CustomLabels.Add((i) , 
    (i+1), (ntemp * 10).ToString(), 0, LabelMarkStyle.SideMark);

スクロールバーを動かすと、チャートビューのサイズが少し異なります。チャートがちらつきますが、私はそれを望んでいません。

前もって感謝します。

ここに例があります

            Random rand = new Random();
            chart1.Series.Clear();

            var series = chart1.Series.Add("My Series");
            series.ChartType = SeriesChartType.RangeBar;
            series.Color = Color.Black;

            series.YAxisType = AxisType.Secondary;

            for (int i = 10; i > 2; i--)
                series.Points.AddXY(i, (rand.Next(3600, 7200)), (rand.Next(30000, 80000)));
            var chartArea = chart1.ChartAreas[series.ChartArea];

            chartArea.BorderDashStyle = ChartDashStyle.Solid; //最外圍的框框
            chartArea.BorderWidth = 10;

            chartArea.AxisY.Enabled = AxisEnabled.False;

            chartArea.AxisY2.Enabled = AxisEnabled.True;

            chartArea.AxisY2.LabelStyle.IntervalType = DateTimeIntervalType.Number;

            chartArea.AxisY2.Interval = 3600;
            chartArea.AxisY2.Minimum = 0;
            chartArea.AxisY2.Maximum = 86400;
            chartArea.AxisY2.ScaleView.Zoom(0, 3600 * 4);

            for (int i = 0; i <= 24 * 6; i++)
            {

                int ntemp = i % 6;
                if (ntemp != 0)
                {
                    /*Problem Here !!*/
                    //chart1.ChartAreas[0].AxisY2.CustomLabels.Add((i) * 600, (i + 1) * 600, (ntemp * 10).ToString(), 0, LabelMarkStyle.Box);
                }
            }

            chartArea.CursorY.AutoScroll = true;
            chartArea.AxisY2.ScaleView.Zoomable = true;
            chartArea.AxisY2.ScrollBar.ButtonStyle = ScrollBarButtonStyles.SmallScroll;
            chartArea.AxisY2.ScrollBar.IsPositionedInside = false;

        }
4

1 に答える 1