2
            int blockSize = 100;

            // generates random data (i.e. 30 * blockSize random numbers)
            Random rand = new Random();
            var valuesArray = Enumerable.Range(0, blockSize * 30).Select(x => rand.Next(1, 10)).ToArray();

            // clear the chart
            chart1.Series.Clear();


            //chart1.ChartAreas[0].AxisX.Interval = 3.0;
            //chart1.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Auto;
            DateTime now = DateTime.Now;
            chart1.ChartAreas[0].AxisX.LabelStyle.Format = "HH:mm:ss";
            chart1.ChartAreas[0].AxisX.Minimum = now.ToOADate();
            // fill the chart
            var series = chart1.Series.Add("My Series");
            series.XValueType = ChartValueType.DateTime;
            series.ChartType = SeriesChartType.Line;
            //series.XValueType = ChartValueType.Int32;
            //DateTime.Now.AddSeconds(i).ToOADate()
            for (int i = 0; i < valuesArray.Length; i++)
                series.Points.AddXY(now.AddSeconds(i).ToOADate(), valuesArray[i]);
            var chartArea = chart1.ChartAreas[series.ChartArea];

            // set view range to [0,max]
            //chartArea.AxisX.Minimum = 0;
            //chartArea.AxisX.IntervalType = DateTimeIntervalType.Seconds;
            //chartArea.AxisX.Interval = 10d;
               // chartArea.AxisX.Maximum = 100;

            // enable autoscroll
            chartArea.CursorX.AutoScroll = true;

            // let's zoom to [0,blockSize] (e.g. [0,100])
            chartArea.AxisX.ScaleView.Zoomable = true;
            chartArea.AxisX.ScaleView.SizeType = DateTimeIntervalType.Auto;
            int position = 0;
            int size = blockSize;
            chartArea.AxisX.ScaleView.Zoom(now.AddSeconds(-5).ToOADate(), now.AddSeconds(20).ToOADate());
            //chart1.ChartAreas[0].AxisX.ScaleView.ZoomReset();
            // disable zoom-reset button (only scrollbar's arrows are available)
            chartArea.AxisX.ScrollBar.ButtonStyle = ScrollBarButtonStyles.SmallScroll;

            // set scrollbar small change to blockSize (e.g. 100)
            chartArea.AxisX.ScaleView.SmallScrollSize = (new TimeSpan(0,0,10)).TotalSeconds;

使用上面的代码,我无法拖动滚动条。当我单击滚动条时,我只是卡住了。我可以使用箭头滚动。

在此处输入图像描述

4

1 回答 1

2
        chartArea.AxisX.ScaleView.SmallScrollMinSize = .01;
        chartArea.AxisX.ScaleView.SmallScrollMinSizeType = DateTimeIntervalType.Seconds;
        chartArea.AxisX.ScaleView.SmallScrollSizeType = DateTimeIntervalType.Seconds;

您需要指定最小滚动大小才能使其工作。

于 2013-06-17T00:04:44.310 回答