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

翻译|使用教程|编辑:杨鹏连|2021-07-14 13:52:19.860|阅读 104 次

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

# 31款JAVA开发必备控件和工具 # 开发软/控件产品年终优惠

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

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

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

Q:我们使用 2D 等高线图,并且用户可以放大图
但是如何防止用户缩小?
允许他放大然后返回开始,但不能允许他缩小,因此图表背景变得可见
我也看不到如何禁用平移 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 相同。我不明白你在上一篇文章中写的内容吗?

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 相同。我不明白你在上一篇文章中写的内容吗?

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做错了吗?

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

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

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

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

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


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至hey@evget.com

文章转载自:Arction Ltd

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
在线咨询
联系我们
TOP
在线客服系统
live chat