提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:杨鹏连|2021-04-02 10:23:25.067|阅读 184 次
概述:本文主要介绍了高性能图表控件LightningChart 中标记+ Mouse_Up事件问题解答。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
LightningChart.NET完全由GPU加速,并且性能经过优化,可用于实时显示海量数据-超过10亿个数据点。 LightningChart包括广泛的2D,高级3D,Polar,Smith,3D饼/甜甜圈,地理地图和GIS图表以及适用于科学,工程,医学,航空,贸易,能源和其他领域的体绘制功能。
LightningChart.NET现已加入在线订购,SignalTools , 12 months, WPF版本原价4105元,现价只需3499元,现在抢购立享优惠!立即购买>>
问:我正在使用ChartEventMarker。我将事件附加到它上,例如“ PositionChanged,MouseClick”。两者都可以。但是,根本不会触发MouseUp事件。我应该什么时候触发该事件?为什么不触发?
private void CreateChart() { //禁用渲染,强烈建议在更新图表属性之前。 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符号=新的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上的标记chartMarker = new ChartEventMarker { XValue = 2, Visible = true }; chartMarker.Label.Text =“标记”; chartMarker.Label.Color = Color.Black; chartMarker.Label.VerticalAlign = AlignmentVertical.Top; chartMarker.BindToXAxis = true; chartMarker.Symbol =符号; chartMarker.Tag = 0; chartMarker.MouseInteraction = true; Chart.ViewXY.ChartEventMarkers.Add(chartMarker); chartMarker.MouseUp + = ChartMarker_MouseUp; chartMarker.PositionChanged + = ChartMarker_PositionChanged; Chart.EndUpdate(); }回复:我们使用ChartEventMarkers测试了事件,但无法重现此问题。至少PositionChanged,MouseClick,MouseDown和MouseUp-事件正常运行。MouseUp -event会在释放鼠标按钮时触发。然后,它检查鼠标是否在组件上方(在本例中为标记)。因此,它可能不会触发的一个原因是鼠标不在标记上方。这很容易检查MoveByMouse -property是否设置为false:在标记上方按下鼠标按钮,将鼠标移开,然后释放按钮。无需移开鼠标即可执行相同的操作。
这是一个示例代码,它使用正常的MouseUp -event添加了一个标记:
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"; }如果您无法触发MouseUp -event,则可以向我们发布代码的一部分,在其中定义标记及其事件,然后我们可以尝试找出导致此问题的原因。
问:但是“ MouseUp”事件仍未触发。我使用的版本是8.2.1.4001(Arction.WinForms.Charting.LightningChartUltimate)
(我在下面的代码行中创建了一个示例项目。)
我的代码:
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(对象发送者,PositionChangedChartEventMarkerEventArgs e) { Chart.Title.Text =“位置已更改”; } private void Marker_MouseDown(object sender,MouseEventArgs e) { Chart.Title.Text =“鼠标向下”; } private void ChartMarker_MouseUp(object sender,MouseEventArgs e) { Chart.Title.Text =“鼠标向上”; }永远不会出现在“ ChartMarker_MouseUp”上。您使用的是同一版本吗?
回复:我再次检查了一下,发现您的代码中没有任何错误,是LightningChart版本导致了此错误。在某些8.2版本中,MouseUp -event被某些组件(例如注释和事件标记)所困扰。此问题在更高版本的LightningChart中已修复,这解释了为什么它在我的测试中有效。
因此,我看到使事件在您的应用程序中起作用的两个可能选项:
1.将LightningChart更新为最新版本。
2.如果以上都不是选项,则必须使用解决方法。一种方法是将MouseUp -event用于图表组件,这似乎可以正常工作。只要图表具有焦点,只要释放鼠标按钮,它就会触发。例如,您可以使用布尔变量使它与标记的MouseDown -event一起使用。这是一个例子:
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 } }在此示例中,仅当首先单击标记时,才会执行MouseUp -event中发生的任何事情。需要注意的一件事是,在这种情况下,释放按钮时鼠标光标可以位于任何位置(不必位于标记上方)。
如果对此有任何疑问,请以获取更多信息。
想要购买LightningChart正版授权,或了解更多产品信息请点击
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
文章转载自:本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
高性能WPF和Winforms图表,可以实时可视化多达1万亿个数据点。
LightningChart JS高性能的JavaScript图表库,专注于实时数据可视化。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢