【问题标题】:MS Chart Scaleview & ThreadingMS Chart Scaleview & 线程
【发布时间】:2009-11-24 13:10:48
【问题描述】:

我从 microsfot 网站上的示例中获取了示例。该示例是 C# 的实时日期和时间。该示例在使用短距离时完美运行,并且基本上完全按原样运行,但是我需要能够监控我的图表至少 45 分钟到 1 小时,然后这些值才必须开始下降。我想做的是有大约 5 分钟的观看时间,其余的绘制图表我希望能够向后滚动。所以下面是问题所在的区域。我需要添加比例视图,以便在它滚动之前设置我可以在图表上看到的数量(这也不起作用),但是当我将比例视图设为 1 以上时,没有插入任何 X 轴值标签如果是这样,那么其中只有 1 个是并且没有更多。代码有点混乱,因为这非常令人沮丧。有人可以帮助或指导我制作更好的图表,因为该图表的支持和文档很糟糕。

private void startTrending_Click(object sender, EventArgs e)
    {
        // Disable all controls on the form
        startTrending.Enabled = false;
        // and only Enable the Stop button
        stopTrending.Enabled = true;            
        // Predefine the viewing area of the chart
        minValue = DateTime.Now;
        maxValue = minValue.AddMinutes(120);           
        chart1.ChartAreas[0].AxisX.Minimum = minValue.ToOADate();
        chart1.ChartAreas[0].AxisX.Maximum = maxValue.ToOADate();

        // Reset number of series in the chart.
        chart1.Series.Clear();

        // create a line chart series
        Series newSeries = new Series("Series1");
        newSeries.ChartType = SeriesChartType.Line;
        newSeries.BorderWidth = 2;
        newSeries.Color = Color.OrangeRed;
        newSeries.XValueType = ChartValueType.Time;           
        chart1.Series.Add(newSeries);            
        /*chart1.ChartAreas[0].AxisX.LabelStyle.Format = "hh:mm";
        chart1.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Minutes;
        chart1.ChartAreas[0].AxisX.Interval = 1;
        chart1.ChartAreas[0].AxisX.MajorGrid.Interval = 1;
        chart1.ChartAreas[0].AxisX.MajorTickMark.Interval = 0.5; 
        chart1.ChartAreas[0].AxisX.  */          
        chart1.ChartAreas[0].AxisX.ScrollBar.Enabled = true;
        chart1.ChartAreas[0].AxisX.ScaleView.SizeType = DateTimeIntervalType.Minutes;
        chart1.ChartAreas[0].AxisX.ScaleView.Size = 1;
        chart1.ChartAreas[0].CursorX.Interval = 0;

        // start worker threads.
        if (addDataRunner.IsAlive == true)
        {
            addDataRunner.Resume();
        }
        else
        {
            addDataRunner.Start();
        }
    }

【问题讨论】:

    标签: c# mschart real-time


    【解决方案1】:

    我推荐来自 MS Research 的开源且很棒的 WPF Dynamic Data Display 库。

    它附带了一堆示例项目,您可以根据自己的需要定制其中的一个。

    【讨论】:

      【解决方案2】:

      切换到名为 TeeChart 的图表。必须为此付出代价,但绝对值得。在 MSChart 上战斗了几天。在 30 分钟内在 TeeChart 中完成了完全相同的操作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多