LightningChart.NET完全由GPU加速,并且性能经过优化,可用于实时显示海量数据——超过10亿个数据点。LightningChart包括广泛的2D、高级3D、Polar、Smith、3D饼/甜甜圈、地理地图和GIS图表以及适用于科学、工程、医学、航空、贸易、能源和其他领域的体位功能。
LightningChart.NET重加入在线订购,SignalTools,12个月,WPF版本原价405元,现价3499元,现在抢购立享优惠!立即购买>>
LightningChart.NET最新试用版 LightningChart JS最新试用版
Q:悬停在点上时的工具提示
我有一个带有点的FreeformPointLineSeries,并且设置LineVisible=”false”, PointsVisible=”true” … 我想显示一些带有自定义信息的工具提示,当鼠标悬停在图表内的一个点上时. …..是那可能吗/span>:)
A:是的,这是很有可能做到的。我们实际上有一两个演示示例,它执行与此类似的操作(“散点、点跟踪”和“带标记的值跟踪”)。您可以检查它们及其源代码,因为它们在这种情况下会有所帮助。
基本上,您可以在每个数据点的顶部放置一个SeriesEventMarker,并使用MouseOverOn- 和MouseOverOff- 事件来启用和禁用它们的可见性。可以更新标记的标签文本以显示有关数据点的自定义信息。这种方法很有效,除非有数千(甚至数万)个数据点,在这种情况下,有这么多SeriesEventMarker 会开始降低应用程序的性能。
也可以仅使用一个标记并通过求解MouseOverOn 事件内最近的数据点来更新其位置。例如:
// 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(); }
请注意,您还可以使用Annotation 代替SeriesEventMarker 的标签来显示自定义信息。注释具有更多标签样式选项。
Q:很酷,它可以工作,现在我只有一个小问题—>可以用鼠标移动标记,有什么方法可以禁用它吗/span>
A:是的,这是可能的。有两个选项可供您选择:
marker.MouseInteraction = false;
这可以防止鼠标与标记的所有交互,包括移动它、鼠标悬停突出显示和鼠标事件。
marker.MoveByMouse = false;
这只会阻止使用鼠标移动标记,但会保留上面提到的其他鼠标交互。
如果有任何疑问,请联系客服以获取更多信息。
如果您对该图表控件感兴趣,欢迎加入图表控件QQ交流群:
欲购买LightningChart正版授权,或了解更多产品信息请点击【咨询在线客服】
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!