翻譯|使用教程|編輯:楊鵬連|2021-06-23 10:09:35.420|閱讀 246 次
概述:本文主要介紹了高性能圖表控件LightningChart關(guān)于懸停在點(diǎn)上時(shí)的工具提示問題解答。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
LightningChart.NET完全由GPU加速,并且性能經(jīng)過優(yōu)化,可用于實(shí)時(shí)顯示海量數(shù)據(jù)——超過10億個(gè)數(shù)據(jù)點(diǎn)。LightningChart包括廣泛的2D、高級(jí)3D、Polar、Smith、3D餅/甜甜圈、地理地圖和GIS圖表以及適用于科學(xué)、工程、醫(yī)學(xué)、航空、貿(mào)易、能源和其他領(lǐng)域的體位功能。
點(diǎn)擊下載LightningChart.NET最新試用版 LightningChart JS最新試用版
Q:懸停在點(diǎn)上時(shí)的工具提示
我有一個(gè)帶有點(diǎn)的FreeformPointLineSeries,并且設(shè)置LineVisible="false", PointsVisible="true" ... 我想顯示一些帶有自定義信息的工具提示,當(dāng)鼠標(biāo)懸停在圖表內(nèi)的一個(gè)點(diǎn)上時(shí). .....是那可能嗎?:)
A:是的,這是很有可能做到的。我們實(shí)際上有一兩個(gè)演示示例,它執(zhí)行與此類似的操作(“散點(diǎn)、點(diǎn)跟蹤”和“帶標(biāo)記的值跟蹤”)。您可以檢查它們及其源代碼,因?yàn)樗鼈冊(cè)谶@種情況下會(huì)有所幫助。
基本上,您可以在每個(gè)數(shù)據(jù)點(diǎn)的頂部放置一個(gè)SeriesEventMarker,并使用MouseOverOn- 和MouseOverOff- 事件來啟用和禁用它們的可見性。可以更新標(biāo)記的標(biāo)簽文本以顯示有關(guān)數(shù)據(jù)點(diǎn)的自定義信息。這種方法很有效,除非有數(shù)千(甚至數(shù)萬)個(gè)數(shù)據(jù)點(diǎn),在這種情況下,有這么多SeriesEventMarker 會(huì)開始降低應(yīng)用程序的性能。
也可以僅使用一個(gè)標(biāo)記并通過求解MouseOverOn 事件內(nèi)最近的數(shù)據(jù)點(diǎn)來更新其位置。例如:
// Defining the marker SeriesEventMarker marker = new SeriesEventMarker(); marker.MouseInteraction = false; marker.HorizontalPosition = SeriesEventMarkerHorizontalPosition.SnapToPoints; marker.VerticalPosition = SeriesEventMarkerVerticalPosition.AtYValue; marker.Visible = false; marker.Label.Border.Style = BorderType .Outer; marker.Label.Border.Color1 = Colors.Red; marker.Label.Distance = 15; freeformPointLineSeries.SeriesEventMarkers.Add(marker); freeformPointLineSeries.MouseOverOn += freeformPointLineSeries_MouseOverOn; freeformPointLineSeries.MouseOverOff += freeformPointLineSeries_MouseOverOff; private void freeformPointLineSeries_MouseOverOff( object sender, MouseEventArgs e) { _chart.ViewXY.FreeformPointLineSeries[0].SeriesEventMarkers[0].Visible = false; } private void freeformPointLineSeries_MouseOverOn(object sender, MouseEventArgs e) { _chart.BeginUpdate(); double xpos, ypos; int index; if (_chart.ViewXY .FreeformPointLineSeries[0].SolveNearestDataPointByCoord((int)e.GetPosition(_chart).X, (int)e.GetPosition(_chart).Y, out xpos, out ypos, out index)) { _chart.ViewXY.FreeformPointLineSeries[0 ].SeriesEventMarkers[0].XValue = xpos; _chart.ViewXY.FreeformPointLineSeries[0].SeriesEventMarkers[0].YValue = ypos; _chart.ViewXY.FreeformPointLineSeries[0].SeriesEventMarkers[0].Visible = true; _chart.ViewXY.FreeformPointLineSeries[0].SeriesEventMarkers[0].Label.Text = "X: " + xpos.ToString("0.00") + "\nY: " + ypos.ToString("0.00"); } _chart.EndUpdate(); }請(qǐng)注意,您還可以使用Annotation 代替SeriesEventMarker 的標(biāo)簽來顯示自定義信息。注釋具有更多標(biāo)簽樣式選項(xiàng)。
Q:很酷,它可以工作,現(xiàn)在我只有一個(gè)小問題--->可以用鼠標(biāo)移動(dòng)標(biāo)記,有什么方法可以禁用它嗎?
A:是的,這是可能的。有兩個(gè)選項(xiàng)可供您選擇:
marker.MouseInteraction = false;
這可以防止鼠標(biāo)與標(biāo)記的所有交互,包括移動(dòng)它、鼠標(biāo)懸停突出顯示和鼠標(biāo)事件。marker.MoveByMouse = false;
這只會(huì)阻止使用鼠標(biāo)移動(dòng)標(biāo)記,但會(huì)保留上面提到的其他鼠標(biāo)交互。
如果有任何疑問,請(qǐng)以獲取更多信息。
如果您對(duì)該圖表控件感興趣,歡迎加入圖表控件QQ交流群:740060302
欲購(gòu)買LightningChart正版授權(quán),或了解更多產(chǎn)品信息請(qǐng)點(diǎn)擊
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: