3

我正在尝试在我的一个轴(X 轴)上获得持续时间。目前我使用日期轴,虽然这不能有第 0 天。我目前有: 日期

正如你所看到的,我没有我需要的第 0 天,因为第 0 天可能发生了一些事情(好吧,从一开始不到 24 小时。)我需要的是格式为:numberOfDays 小时:分:秒

我目前使用以下代码来计算我的 x:

XDate date = new XDate(0, 0,
    event.Time.Days,
    event.Time.Hours,
    event.Time.Minutes,
    event.Time.Seconds,
    event.Time.Milliseconds);
double x = date;

我的轴:

graphPane.XAxis.Title.Text = xAxisTitleText.ToString();
graphPane.XAxis.Scale.IsVisible = true;
graphPane.XAxis.Type = AxisType.Date;
graphPane.XAxis.Scale.Format = "dd HH:mm:ss";

所以最终我想要这样的标签:0 02:23:14 0 08:56:12 1 01:03:44

我需要能够缩小并查看日期和小时,还需要放大并查看每个事件的分钟和秒。

注意:如果可以隐藏负数,那就太棒了,尽管不是很重要。

谢谢!

4

1 回答 1

6

我自己解决了我的问题!

对于那些将来可能正在寻找类似东西的人,我是这样做的:

首先,我现在将点的 x 值设置为 TimeSpan 的 TotalHours,然后将处理程序添加到 XAxis.ScaleFormatEvent

graphPane.XAxis.ScaleFormatEvent += new Axis.ScaleFormatHandler(Axis_ScaleFormatEvent);

static string Axis_ScaleFormatEvent(GraphPane pane, Axis axis, double val, int index)
{
    TimeSpan timeVal = TimeSpan.FromHours(val); return timeVal.ToString();
}

希望这有助于其他人寻找相同的东西!

注意:使用这种方法也可以做其他事情,任何你可以更改为双精度,然后再更改回来的东西都应该在这里工作。非常有用的东西。

于 2012-07-10T13:24:44.940 回答