我正在使用.NET 3.5的Microsoft图表控件,并且正在努力获取图表控件以支持窗口和控件调整大小。
我有图表,其中X值是日期,并希望图表在我调整窗口大小时显示图表轴上的间隔/标签的最大可用空间。
我最接近的是从PrePaint事件中调用它:
double interval = chart.Series[0].Points.Count / ((double)chart.Width / 90);
foreach (var area in chart.ChartAreas.Where(ca => ca.Visible))
{
area.AxisX.Interval = interval;
}
这使得间隔和标签完全沿X轴适合,但日期未正确显示。第一个标签似乎是正确的(2008年某个日期),但沿着轴的其余标签在1900年显示为某个日期。
这样做的首选方式是什么?
答案 0 :(得分:1)
对于Microsoft图表控件中的日期,您必须明确指定要开始的最短日期。否则它需要1899年12月29日作为起源。您可以在图表上设置最小和最大日期,如
chart.ChartAreas[0].AxisY.Minimum = (new DateTime(2010, 5, 1)).ToOADate();
chart.ChartAreas[0].AxisY.Maximum = (new DateTime(2011, 4, 1)).ToOADate();
帖子 Creating a Gantt Chart with the MS Chart Controls 包含有关Microsoft图表控件的一些有价值的信息。