2013-04-08 52 views
1

我有一個MSChart對象,其中包括一個折線圖。 Y軸代表權益的價值,X軸代表日期時間。使用組合框,用戶可以更改X軸的間隔。例如,選擇「一天」的價值將迫使X軸,每天展示一個吧:C#MSChart:縮放間隔

http://i.imgur.com/pY1c2Mw.png

然而,這是不夠的。除此之外,無論用戶何時更改X軸的時間標度,我都希望圖表從包含在圖表中的第一個點放大到它找到的X軸的第一個間隔標記。簡單來說,我想這樣做:

http://i.imgur.com/MwTZO9c.png

自動。但是,我卡住了,因爲我不知道如何找到X軸上第一個間隔標記的「位置」。我知道我想從第一個數據點放大到間隔標記,但是當我不知道它有多大時我該怎麼做?請記住,用戶可以自己更改時間範圍,所以我不能使用硬編碼的值。

我將不勝感激任何幫助,你可以給我,因爲我一直無法找到任何決定性的到目前爲止。

編輯:這是我到目前爲止發現的。更準確地說,我要找的就是X軸主柵格的第一個柵格線的位置。然而,當這兩個軸的主要網格被繪製時,它們並沒有被賦予一個真實的位置,或者至少該位置不被包含在合適的範圍內。埃爾戈,那個位置必須被計算 - 但是怎麼樣?

回答

1

定義事件觸發:

SelectionRangeChanged += new EventHandler<CursorEventArgs>(your_handler_function); 

和你的函數的定義裏面:

public void your_handler_function(object sender, CursorEventArgs e) 
{ 
    e.NewSelectionStart; // the beginning of the new range 
    e.NewSelectionEnd; // the end of the new range 
}