2009-11-24 38 views
2

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

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(); 
     } 
    } 

回答

1

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

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

1

切换到名为TeeChart的图表。必须付出代价,但绝对值得。已经在MSChart上作了两天的战斗。在30分钟内TeeChart中完全一样的东西。