彩票走势图

高性能图表控件LightningChart如何标记+ Mouse_Up事件

翻译|使用教程|编辑:杨鹏连|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元,现在抢购立享优惠!立即购买>>

点击下载LightningChart.NET最新试用版

问:我正在使用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

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP