如何在Windows窗体的Dundas / Microsoft图表控件中获取动态间隔?

时间:2009-05-11 10:43:57

标签: winforms charts dundas microsoft-chart-controls

我正在使用.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年显示为某个日期。

这样做的首选方式是什么?

1 个答案:

答案 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图表控件的一些有价值的信息。