【问题标题】:How to get dynamic intervals in Dundas / Microsoft Chart Controls for Windows Forms?如何在 Dundas / Microsoft Chart Controls for Windows Forms 中获取动态间隔?
【发布时间】:2009-05-11 10:43:57
【问题描述】:

我正在使用适用于 .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 年的某个日期。

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

【问题讨论】:

    标签: winforms charts dundas microsoft-chart-controls


    【解决方案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有一些关于微软图表控件的有价值的信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-13
      • 2019-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多