[英]C# Charting zoom problem with DataTime for X axis
使用MS Charting for .NET,我试图放大我创建的图表。
如果type = int,这在Y轴(type = float)和X轴上工作正常,但是当我在X轴上有DateTime值时,滚动在该轴上的行为不应该如此。
在垂直方面,一切仍然表现得很好,但是当我可以放大X轴时,我无法拖动滑动条移动到我放大的位置。 但是,我可以点击任意一侧,它会跳跃。
有谁知道如何解决这个问题并使其表现得像浮点值一样?
谢谢!
根据您的数据,尝试将图表区域的CursorX.IntervalType
属性设置为Auto以外的其他属性。
一旦放大,尝试使用滚动条的小滚动箭头时可能会遇到类似的问题。要解决此问题,您可以尝试将图表区域的AxisX.ScaleView.SmallScrollSizeType
属性设置为与CursorX.IntervalType
相同的CursorX.IntervalType
。
例如,如果您的图表包含每30秒报告一次的数据,则可以使用以下设置:
chart1.ChartAreas[0].CursorX.IsUserEnabled = true;
chart1.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;
chart1.ChartAreas[0].CursorX.IntervalType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Minutes;
chart1.ChartAreas[0].CursorX.Interval = 0.5D;
chart1.ChartAreas[0].AxisX.ScaleView.SmallScrollSizeType = DateTimeIntervalType.Minutes;
chart1.ChartAreas[0].AxisX.ScaleView.SmallScrollSize = 0.5D;
chart1.ChartAreas[0].AxisX.ScaleView.Zoomable = true;
chart1.ChartAreas[0].AxisX.LabelStyle.Format = "hh:mm:ss";
我遇到了同样的问题,这些设置为我解决了这个问题:
_chart.ChartAreas[0].CursorX.IsUserEnabled = true;
_chart.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;
_chart.ChartAreas[0].CursorX.IntervalType = DateTimeIntervalType.Minutes;
_chart.ChartAreas[0].CursorX.Interval = 1D;
_chart.ChartAreas[0].AxisX.ScaleView.SmallScrollSizeType = DateTimeIntervalType.Minutes;
_chart.ChartAreas[0].AxisX.ScaleView.SmallScrollSize = 1D;
_chart.ChartAreas[0].AxisX.ScaleView.Zoomable = true;
_chart.ChartAreas[0].AxisX.ScaleView.MinSizeType = DateTimeIntervalType.Minutes;
_chart.ChartAreas[0].AxisX.ScaleView.MinSize = 1D;
_chart.ChartAreas[0].AxisX.ScaleView.SmallScrollMinSizeType = DateTimeIntervalType.Minutes;
_chart.ChartAreas[0].AxisX.ScaleView.SmallScrollMinSize = 1D;
特别是最后两行完成了这项工作。
加
chart.ChartAreas[0].AxisX.ScaleView.SmallScrollMinSizeType = DateTimeIntervalType.Seconds;
我的解决方案是:
chart1.ChartAreas[0].CursorX.IntervalType = DateTimeIntervalType.Milliseconds;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.