2012-07-10 81 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(); 
} 

希望這有助於其他在尋找同樣的事情!

注意:使用這種方法也可以做其他的事情,任何你可以改變爲雙重的東西,然後改變回來應該在這裏工作。非常有用的東西。