2011-09-02 37 views
0

我有一個DataVisualization.Charting.Chart和爲了使用戶控制的縮放我已經設置DataVisualization.Charting中的點範圍小於[-1,1]時是否允許縮放?

 chartArea1.CursorX.IsUserEnabled = true; 
     chartArea1.CursorX.IsUserSelectionEnabled = true; 
     chartArea1.CursorY.IsUserEnabled = true; 
     chartArea1.CursorY.IsUserSelectionEnabled = true; 

但是,如果我做出一系列具有一個軸,沿着該數據的範圍內爲[ - 1,1]圖表不允許在該軸上縮放。有沒有辦法啓用縮放?

此外,縮放選擇器看起來相當笨重(它會捕捉到主要間隔或某事)是否可以得到更平滑的選擇?

+0

它使用WPF或WinForms? – Dennis

+0

對不起,花了很長時間回覆,我正在這樣做WinForms –

回答

0

原來,這個問題必須由變焦造成的光標只能夠採取位置座標上的離散的網格。這些由Cursor.Interval和Cursor.Offset控制。您可以通過設置

Chart.ChartAreas[0].CursorX.Interval = 0; 
Chart.ChartAreas[0].CursorY.Interval = 0; 

這使得電網連續這麼變焦光標可以採取任何座標改變這種情況。

0

涵蓋WPF的WinForms因爲你沒有在你的問題中指定。

WPF

聽起來好像該圖表被虛擬化的內容(即,僅繪製什麼是在視圖)。您可能通過將ScrollViewer.CanContentScroll設置爲False來驗證是否屬於這種情況。您將需要保持虛擬化,否則性能會受到大型數據集的影響。

的WinForms

你有沒有設置Chart.DoubleBuffered財產?將此屬性設置爲true將使圖表控件使用輔助緩衝區重繪其表面以減少或防止閃爍。

  • Chart類(MSDN
  • Control.DoubleBuffered屬性(MSDN
+0

謝謝,我沒有設置它,我會在星期二嘗試它。爲什麼輔助緩衝區允許縮放?我不好意思。 –

+0

我相信你看到的問題只是渲染重繪(即閃爍),這將通過雙緩衝油漆來解決。 ...這只是一個很好的猜測,不需要自己創建一個示例應用程序並進行調試。 – Dennis

+0

事實證明Control.DoubleBuffered是受保護的,所以你不能從外部修改它。此外,我沒有看到如何缺乏雙緩衝值會阻止您甚至繪製縮放矩形。 –