2

我有一个 LineSeries,其中 DataFieldX 值为 DateTime,在视觉上它工作得很好,但是在为图表实现 OnClick 之后,我似乎无法将所选值转换回 DateTime:

        Plot plot = sender as Plot;
        var series = plot.GetSeriesFromPoint(new ScreenPoint(e.GetPosition(plot).X, e.GetPosition(plot).Y), 10);
        var result = series.GetNearestPoint(new ScreenPoint(e.GetPosition(plot).X, e.GetPosition(plot).Y), true);
        var data = result.DataPoint;
        DateTime dt = new DateTime();
        dt = dt.AddSeconds(data.X);

data.X 为 41577.61596880656,图表中点的时间为 31/10/2013 14:47。dt 最终成为 01.01.0001 11:32:57

如何成功将 data.X 转换回 DateTime?

4

2 回答 2

4

您需要在 1899 年 12 月 31 日之后添加天数,而不是秒数

DateTime dt = new DateTime(1899,12,31);
dt = dt.AddDays(data.X);

出于某种原因,当我运行它时,我会延迟 0.3 秒。我假设这是基于数据存储格式的精度。

在此处输入图像描述

于 2013-10-31T14:09:07.517 回答
3

DateTimeAxis.ToDateTime()执行所需的转换?

于 2014-01-29T17:03:01.363 回答