翻譯|使用教程|編輯:楊鵬連|2021-04-02 10:23:25.067|閱讀 276 次
概述:本文主要介紹了高性能圖表控件LightningChart 中標(biāo)記+ Mouse_Up事件問題解答。
# 界面/圖表報(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最新試用版
問:我正在使用ChartEventMarker。我將事件附加到它上,例如“ PositionChanged,MouseClick”。兩者都可以。但是,根本不會(huì)觸發(fā)MouseUp事件。我應(yīng)該什么時(shí)候觸發(fā)該事件?為什么不觸發(fā)?
private void CreateChart() { //禁用渲染,強(qiáng)烈建議在更新圖表屬性之前。 Chart.BeginUpdate(); Chart.Name =“ PointLineSeries圖表”; //配置x軸。 AxisX axisX = Chart.ViewXY.XAxes [0]; axisX.SetRange(0,20); //配置y軸。 Chart.ViewXY.YAxes [0] .SetRange(0,100); PointShapeStyle符號(hào)=新的PointShapeStyle( null, Shape.Rectangle, Color.Black, Color.FromArgb(0,Color.Black), Color.White, Color.FromArgb(160,Color.Black), 3, Chart.ViewXY.GetGraphSegmentInfo()。GraphHeight-30, 0, 0, 1, GradientFillPoint.Solid, Direction.None, NULL); //在圖表 ChartEventMarker上的標(biāo)記chartMarker = new ChartEventMarker { XValue = 2, Visible = true }; chartMarker.Label.Text =“標(biāo)記”; chartMarker.Label.Color = Color.Black; chartMarker.Label.VerticalAlign = AlignmentVertical.Top; chartMarker.BindToXAxis = true; chartMarker.Symbol =符號(hào); chartMarker.Tag = 0; chartMarker.MouseInteraction = true; Chart.ViewXY.ChartEventMarkers.Add(chartMarker); chartMarker.MouseUp + = ChartMarker_MouseUp; chartMarker.PositionChanged + = ChartMarker_PositionChanged; Chart.EndUpdate(); }回復(fù):我們使用ChartEventMarkers測(cè)試了事件,但無法重現(xiàn)此問題。至少PositionChanged,MouseClick,MouseDown和MouseUp-事件正常運(yùn)行。MouseUp -event會(huì)在釋放鼠標(biāo)按鈕時(shí)觸發(fā)。然后,它檢查鼠標(biāo)是否在組件上方(在本例中為標(biāo)記)。因此,它可能不會(huì)觸發(fā)的一個(gè)原因是鼠標(biāo)不在標(biāo)記上方。這很容易檢查MoveByMouse -property是否設(shè)置為false:在標(biāo)記上方按下鼠標(biāo)按鈕,將鼠標(biāo)移開,然后釋放按鈕。無需移開鼠標(biāo)即可執(zhí)行相同的操作。
這是一個(gè)示例代碼,它使用正常的MouseUp -event添加了一個(gè)標(biāo)記:
ChartEventMarker marker = new ChartEventMarker(); marker.MouseDown += Marker_MouseDown; marker.MouseUp += Marker_MouseUp; _chart.ViewXY.ChartEventMarkers.Add(marker); private void Marker_MouseUp(object sender, MouseEventArgs e) { _chart.Title.Text = "Mouse up"; } private void Marker_MouseDown(object sender, MouseEventArgs e) { _chart.Title.Text = "Mouse down"; }如果您無法觸發(fā)MouseUp -event,則可以向我們發(fā)布代碼的一部分,在其中定義標(biāo)記及其事件,然后我們可以嘗試找出導(dǎo)致此問題的原因。
問:但是“ MouseUp”事件仍未觸發(fā)。我使用的版本是8.2.1.4001(Arction.WinForms.Charting.LightningChartUltimate)
(我在下面的代碼行中創(chuàng)建了一個(gè)示例項(xiàng)目。)
我的代碼:
ChartEventMarker marker = new ChartEventMarker(); marker.MouseDown + = Marker_MouseDown; marker.MouseUp + = ChartMarker_MouseUp; marker.PositionChanged + = ChartMarker_PositionChanged; Chart.ViewXY.ChartEventMarkers.Add(marker); private void ChartMarker_PositionChanged(對(duì)象發(fā)送者,PositionChangedChartEventMarkerEventArgs e) { Chart.Title.Text =“位置已更改”; } private void Marker_MouseDown(object sender,MouseEventArgs e) { Chart.Title.Text =“鼠標(biāo)向下”; } private void ChartMarker_MouseUp(object sender,MouseEventArgs e) { Chart.Title.Text =“鼠標(biāo)向上”; }永遠(yuǎn)不會(huì)出現(xiàn)在“ ChartMarker_MouseUp”上。您使用的是同一版本嗎?
回復(fù):我再次檢查了一下,發(fā)現(xiàn)您的代碼中沒有任何錯(cuò)誤,是LightningChart版本導(dǎo)致了此錯(cuò)誤。在某些8.2版本中,MouseUp -event被某些組件(例如注釋和事件標(biāo)記)所困擾。此問題在更高版本的LightningChart中已修復(fù),這解釋了為什么它在我的測(cè)試中有效。
因此,我看到使事件在您的應(yīng)用程序中起作用的兩個(gè)可能選項(xiàng):
1.將LightningChart更新為最新版本。
2.如果以上都不是選項(xiàng),則必須使用解決方法。一種方法是將MouseUp -event用于圖表組件,這似乎可以正常工作。只要圖表具有焦點(diǎn),只要釋放鼠標(biāo)按鈕,它就會(huì)觸發(fā)。例如,您可以使用布爾變量使它與標(biāo)記的MouseDown -event一起使用。這是一個(gè)例子:
private bool markerClicked = false; ChartEventMarker marker = new ChartEventMarker(); marker.MouseDown += Marker_MouseDown; _chart.ViewXY.ChartEventMarkers.Add(marker); _chart.MouseUp += _chart_MouseUp; private void Marker_MouseDown(object sender, MouseEventArgs e) { markerClicked = true; } private void _chart_MouseUp(object sender, MouseEventArgs e) { if (markerClicked) { markerClicked = false; // Something happens } }在此示例中,僅當(dāng)首先單擊標(biāo)記時(shí),才會(huì)執(zhí)行MouseUp -event中發(fā)生的任何事情。需要注意的一件事是,在這種情況下,釋放按鈕時(shí)鼠標(biāo)光標(biāo)可以位于任何位置(不必位于標(biāo)記上方)。
如果對(duì)此有任何疑問,請(qǐng)以獲取更多信息。
想要購買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)載自: