2015-09-16 65 views
1

我使用Oxyplot庫來繪製基於實時數據一些圖表。我知道有一個名爲Tracker的功能,它基於用戶左鍵單擊的Position顯示了一些類似工具提示的信息(例如座標)。信息僅在按下左鍵時顯示。借鑑左垂直線上點擊MouseDownEvent

我目前上線圖,不知道這是否適用於其他類型的測試此功能。

我想要做的就是把這個信息在屏幕上,使只有當用戶試圖設置一個新的,點擊其他地方的圖形和更換舊的信息,它即消失。在用戶點擊的位置添加一個垂直條也不錯。

我檢查了Oxyplot文檔,我知道這是可以自定義這個「跟蹤」,但我沒能找到我的情況的解決方案。

編輯:

我發現this例子,似乎有幫助,但我掙扎提取了它的實用性。請幫忙!

UPDATE:

讓我走遠一點就什麼,我試圖達到的解釋。我有很多圖表,每個圖表放置在一個單獨的面板(或選項卡)上。如果我在一個圖形的位置單擊鼠標左鍵,我想告訴每一位圖上特定位置Tracker信息,而用戶不上的另一位置單擊(設置新Tracker和移除舊)。換句話說,一次只允許一個Tracker,並且這在每個現有的圖上設置在相同的X位置。

更新2:

好了,所以給它一個想法之後,我決定不再維持Tracker左鍵單擊。相反,我只想在點擊位置的每個圖上繪製垂直線。一次只允許一條線,可將其視爲「臨時標記」。我相信這比其他方法更可行,並且滿足我的需求。

回答

0

您可以取消綁定左鍵和剛剛將鼠標,幾乎總是顯示跟蹤器替換它:

public PlotController customController { get; private set; } 

customController = new PlotController(); 
customController.UnbindMouseDown(OxyMouseButton.Left); 
customController.BindMouseEnter(PlotCommands.HoverSnapTrack); 

的XAML:

<oxy:PlotView Controller="{Binding customController}"/> 

編輯>>>>>>

TrackerManipulator代碼:https://github.com/ylatuya/oxyplot/blob/master/Source/OxyPlot/Manipulators/TrackerManipulator.cs

我想你應該創建一個自定義的TrackerManipulator,並重寫Complete方法以避免執行「this.PlotControl.HideTracker();」線。

+0

好的,這工作,但它仍然不是我正在尋找的行爲。我會嘗試更新我的問題以更好地解釋。 –

+0

因此,您想要左鍵單擊並設置全球跟蹤器位置。你有unbind部分,現在你需要我想的左鍵單擊事件部分。 – Jose

+0

更喜歡它,是的。我需要設置一個customTracker(或覆蓋現有的),所以它不會在MouseUp上消失並像你說的那樣在全局範圍內設置它。 –