高性能图表控件LightningChart关于控制2D缩放和平移问题解答

本文主要介绍了高性能图表控件LightningChart关于控制 2D 轮廓的缩放和平移的问题解答。

LightningChart.NET完全由GPU加速,并且性能经过优化,可用于实时显示海量数据——超过10亿个数据点。LightningChart包括广泛的2D、高级3D、Polar、Smith、3D饼/甜甜圈、地理地图和GIS图表以及适用于科学、工程、医学、航空、贸易、能源和其他领域的体位功能。

LightningChart.NET重加入在线订购,SignalTools,12个月,WPF版本原价405元,现价3499元,现在抢购立享优惠!立即购买>>

LightningChart.NET最新试用版  LightningChart JS最新试用版  

Q:我们使用 2D 等高线图,并且用户可以放大图
但是如何防止用户缩小br>允许他放大然后返回开始,但不能允许他缩小,因此图表背景变得可见
我也看不到如何禁用平移 100%

A:所有与缩放和平移相关的属性都可以在_chart.ViewXY.ZoomPanOptions 中找到,每个属性在第 6.21 章 LightningChart 用户手册中有解释。

要禁用 ViewXY 上的平移,请将此行添加到您的代码中,因为平移是针对鼠标右键的:

_chart.ViewXY.ZoomPanOptions.RightMouseButtonAction = MouseButtonAction.None;

此外,请记住为您使用的每个 XY 轴禁用平移,因为您可以通过拖动轴来平移。例如:

axisX.PanningEnabled = false;axisY.PanningEnabled = false;

处理客户端无法缩小、图表背景不可见的情况,你必须在代码中控制它。

  • 订阅事件 1 _chart.ViewXY.BeforeZooming+= 或 2 axis.RangeChanged 事件(每个 XY 轴 1 个)。
  • 对于 BeforeZooming,您可以通过 e.XRanges / e.YRanges 访问范围,其中包含有关 OldMin、OldMax、NewMin、NewMax 的信息;
  • 对于 RangeChanged 几乎相同的东西,但它只包含 e.NewMin 和 e.NewMax,您可以从 e.Axis.Maximum、e.Axis.Minimal 获得旧值。
  • 检查新范围的验证,因为您知道轮廓图的大小。

两种方法产生相同的结果。然而,RangeChanged 事件将附加到所有轴上,这将发生 N 次(其中 n = xAxesCount + yAxesCount)不止一个 BeforZooming 事件。

在最新的用户手册 缩放、平移和旋转章节编号为 6.17(可能因精确修订而异)

Q:正在尝试使用这种方法来限制我对 ViewXY 的缩放,但 RangeChanged 没有旧的缩放数据。

这是我制作的调试打印,您可以看到新值如何与 e.Axis.Minimum 和 Maximum 相同。我不明白你在上一篇文章中写的内容吗br>

private void axisX_RangeChanged(object sender, RangeChangedEventArgs e){Debug.WriteLine(String.Format("axisX_RangeChanged - NewMin: {0} - NewMax: {1} - CurrentMin: {2} - CurrentMax: {3}", e.NewMin , e.NewMax, e.Axis.Minimum, e.Axis.Maximum));} axisX_RangeChanged - NewMin:30753.4980306653 - NewMax:30993.4980306653 - CurrentMin:30753.4980306653 - CurrentMax:30993.4980306653

A:Claudio_G 写道:

我正在尝试使用这种方法来限制我对 ViewXY 的缩放,但 RangeChanged 没有旧的缩放数据。

这是我制作的调试打印,您可以看到新值如何与 e.Axis.Minimum 和 Maximum 相同。我不明白你在上一篇文章中写的内容吗/span>

private void axisX_RangeChanged(object sender, RangeChangedEventArgs e){Debug.WriteLine(String.Format("axisX_RangeChanged - NewMin: {0} - NewMax: {1} - CurrentMin: {2} - CurrentMax: {3}", e.NewMin , e.NewMax, e.Axis.Minimum, e.Axis.Maximum));} axisX_RangeChanged - NewMin:30753.4980306653 - NewMax:30993.4980306653 - CurrentMin:30753.4980306653 - CurrentMax:30993.4980306653

解决方案可以是创建几个本地成员来保留旧的 Min 和 Max 值,并在 RangeChanged 事件回调中需要时分配它们。

Q:我只能通过更改此参数来避免使用鼠标平移axis.MouseInteraction = false; 
我对axis.panningenable = false做错了吗/span>

PanningEnabled -property 可防止在用鼠标拖动图表时将图表平移到轴的方向(默认按住鼠标右键并拖动)。它不会影响拖动轴本身。

以下是控制各种缩放和平移交互的属性。它们可用于 X 轴和 Y 轴。
axis.MouseInteraction = false; 
– 禁用与轴的所有鼠标交互。
axis.PanningEnabled = false; 
– 防止在用鼠标拖动图表时平移图表。不阻止拖动轴。
axis.MouseScrolling = false; 
– 防止拖动轴。图表本身仍然可以平移。
axis.MouseScaling = false; 
– 防止通过拖动 ScaleNib 来缩放轴
axis.ZoomingEnabled = false; 
– 缩放不会影响此轴

如果有任何疑问,联系客服以获取更多信息。

如果您对该图表控件感兴趣,欢迎加入图表控件QQ交流群:

欲购买LightningChart正版授权,或了解更多产品信息请点击【咨询在线客服】

高性能图表控件LightningChart关于控制2D缩放和平移问题解答

标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月11日
下一篇 2021年6月11日

相关推荐

发表回复

登录后才能评论