2012-07-10 59 views
3

我试图在我的一个轴(X轴)上获得持续时间。目前我使用日期轴,尽管这不能有一天0.我目前有: DatesZedgraph持续时间轴

正如你所看到的,我没有第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 2时23分一十四秒0八时56分12秒1 1时03分44秒

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

注意:如果可以隐藏负数,这将是非常棒的,尽管并不重要。

谢谢!

回答

6

我自己解决了我的问题!

这里是我是如何做到的,对于那些谁可能会寻求在未来类似的事情:

首先,我现在我点的x值设置为我的时间跨度的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(); 
} 

希望这有助于其他在寻找同样的事情!

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