2011-05-13 67 views
1

我用MSChart做了一个图形,我能够实现缩放功能。如何解决MSchart控件图形c的滚动大小#

该图可以缩放,但是当我想要在缩放后移动时会出现问题。当我在Y轴滚动条上上下点击时,滚动增量很好。但是,对于x轴滚动条,滚动增量是可怕的。即使中间有数据,它也会一直走到尽头。

我试图为解决网上寻找,但并不走运

这里是我的代码:

 // Chart area (where the axes and series are plotted) 
     ChartArea chartArea = new ChartArea(); 
     chartArea.AxisX.Minimum = DateTime.MinValue.ToOADate(); 
     chartArea.AxisY.Minimum = 0; 
     chartArea.AxisY.Maximum = 100; 
     //chartArea.AxisY.IntervalAutoMode = IntervalAutoMode.VariableCount; 
     chartArea.AxisX.Title = "Time"; 
     chartArea.AxisX.LabelStyle.Format = DEFAULT_TIME_FORMAT_STRING; 
     chartArea.AxisY.LabelStyle.Format = "#########################"; 
     chartArea.AxisX.MajorGrid.LineDashStyle = ChartDashStyle.NotSet; 
     chartArea.AxisY.MajorGrid.LineDashStyle = ChartDashStyle.NotSet; 
     chartArea.BackColor = Color.Transparent; 

     m_chart.ChartAreas.Add(chartArea); 

     //add zoom-in features for x and y axis    
     m_chart.ChartAreas[0].CursorY.Interval = 0; 
     m_chart.ChartAreas[0].CursorY.IsUserEnabled = true; 
     m_chart.ChartAreas[0].CursorY.IsUserSelectionEnabled = true; 
     m_chart.ChartAreas[0].AxisY.ScaleView.Zoomable = true; 
     m_chart.ChartAreas[0].AxisY.ScrollBar.IsPositionedInside = true; 

     m_chart.ChartAreas[0].CursorX.Interval = 0; 
     //m_chart.ChartAreas[0].CursorX.AutoScroll = true; 
     //m_chart.ChartAreas[0].AxisX.IntervalAutoMode = IntervalAutoMode.VariableCount; 
     m_chart.ChartAreas[0].CursorX.IsUserEnabled = true; 
     m_chart.ChartAreas[0].CursorX.IsUserSelectionEnabled = true; 
     m_chart.ChartAreas[0].AxisX.ScaleView.Zoomable = true; 
     m_chart.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside = true; 

我不明白我在做什么错

+0

我想澄清滚动的x轴的行为。当数据大部分位于图的左侧时,并且当我单击滚动条上的右侧按钮时,它将转到图的最后,并且不能看到图的中间(这是缩放之后) 。 – 2011-05-13 17:16:25

+0

所以我想通了。 由于图表是sparce,它只会移动到重要的数据区域......除非您更改smallScrollSize。 所以我所做的就是这个 m_chart.ChartAreas [0] = .AxisX.ScaleView.SmallScrollSize(m_chart.ChartAreas [0] .AxisX.Maximum - m_chart.ChartAreas [0] .AxisX.Minimum)/ 60; – 2011-05-13 18:06:14

回答

0

只要改变

m_chart.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside = false; 

然后滚动条会出现在chartarea之外,你将不会面对那个问题EM。

1

将缩放视图类型设置为适当的时间选择。

m_chart.ChartAreas[0].AxisX.ScaleView.SizeType = "Seconds"; 
m_chart.ChartAreas[0].AxisX.ScaleView.MinSizeType= "Seconds"; 
m_chart.ChartAreas[0].AxisX.ScaleView.SmallScrollMinSizeType= "Seconds"; 
m_chart.ChartAreas[0].AxisX.ScaleView.SmallScrollSizeType= "Seconds"; 
相关问题