有关我正在处理的内容的示例,请创建一个WindowsForms应用程序,创建一个新的图表,并将以下内容添加为Load事件:
this.chart1.Series.Clear();
this.chart1.ChartAreas[0].CursorX.IsUserEnabled = true;
this.chart1.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;
this.chart1.ChartAreas[0].AxisX.ScaleView.Zoomable = true;
this.chart1.ChartAreas[0].CursorX.Interval = 1 / 24.0 / 60.0; // To increase selection granularity
this.chart1.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside = true;
this.chart1.ChartAreas[0].AxisX.LabelStyle.Format = ("M/d H:mm:ss");
var series = new Series("Some Series") {ChartType = SeriesChartType.Line};
for (var i = 0; i < 5; i++)
{
series.Points.AddXY(DateTime.UtcNow.AddDays(i), i + 1);
}
this.chart1.Series.Add(series);
当我运行这个时,我可以放大数据以进行仔细观察,但水平滚动条的行为并不是我想要的;无论系列的内部数据如何,单击任一箭头都会向任一方向跳转一整天。如果不到一天的数据,它将跳到最后。同样限制拖动栏。如何指定TimeSpan我希望这个间隔是什么,或者以其他方式启用平滑滚动?
答案 0 :(得分:2)
这很好地隐藏在文档中。
首先我们找到this,指的是图表ScrollBar
成员的Axis
属性。我们正在处理AxisScrollBar
个对象,而这些信息位于&#34;备注&#34;本文的部分:
https://msdn.microsoft.com/en-us/library/system.windows.forms.datavisualization.charting.axisscrollbar.aspx
要控制较大的滚动大小,请使用ScaleView对象的Size属性。要设置较小的滚动大小,请使用AxisScaleView类的SmallScrollSize属性。
因此,例如,
this.chart1.ChartAreas[0].AxisX.ScaleView.Size = 50;
this.chart1.ChartAreas[0].AxisX.ScaleView.SmallScrollSize = 5;
要使滚动大小与视图中的时间单位相对应,请使用SmallScrollSizeType
对象上的AxisScaleView
属性。再举一个例子,此属性的可能值记录为here。
this.chart1.ChartAreas[0].AxisX.ScaleView.SmallScrollSizeType = DateTimeIntervalType.Weeks;