开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 4504|回复: 0

LightningChart数据可视化工具使用篇32-Annotations 注释

[复制链接]

0

精华

10

贡献

2071

赞扬

帖子
141
软币
3968
在线时间
255 小时
注册时间
2021-1-21
发表于 2021-5-14 12:37:53 | 显示全部楼层 |阅读模式
Annotations 注释


演示示例: Annotations; Custom rendering; Intensity grid mouse control; Multi-channel cursor tracking; Stocks and bars; Annotations table

注释可以在图表区域的任何地方显示鼠标交互的文本标签或图形。注释可以通过鼠标移动,调整大小,旋转,它们的对象和位置可以改变。或者可以通过代码来控制这些操作。如果必须在屏幕上渲染自定义图形,注释也很有用,因为它们可以以不同的样式和形状呈现。在ViewXY.Annotations 集合中创建AnnotationXY对象。

当移动鼠标至注释上方时,可进入鼠标交互的编辑状态。此时可以对注释重定位,调整其大小,旋转,并指定箭头指向哪里。

微信截图_20210514115442.png

图. 移动鼠标至注释上方进入编辑状态;移走鼠标则退出编辑状态




微信截图_20210514115552.png

图. 各种样式的AnnotationXY 对象,分置与一条线系列周围。用Style 属性选择注释形状。



控制对象(Target)和位置(Location)

Target为箭头终点所指,即箭头或标注尖端所指向的点。Target 可以在轴值或在屏幕坐标中设置;具体可以用 TargetCoordinateSystem 在AxisValues和ScreenCoordinates二者中选择。如果选择了、AxisValues ,通过TargetAxisValues 属性设置箭头线指向的位置(箭头线的末端);另外一个则是通过TargetScreenCoords 在屏幕坐标中设置。

Location 是箭头的起始点,可以通过屏幕坐标、轴值或者与Target的相对偏移量来设置。用 LocationCoordinateSystem 在LocationScreenCoords、LocationAxisValues 或 LocationRelativeOffset 三个方法中进行选择来控制位置。 Location还是文本区域旋转的中心点。

Anchor 属性控制着文本区域在Location上的放置方式。设置Anchor.X = 0.5 且 Anchor.Y = 0.5,箭头的起点居于中间;设置 Anchor.X 0.1 且 Anchor.Y = 0.25,箭头起点位于如下图所示的靠近左上角:

微信截图_20210514122350.png

图. Anchor 值说明; Current Anchor.X = 0.1 且 Anchor.Y = 0.25. 当 anchor 值在 0…1 内,箭头起始点便位于文本区域
内部。

用鼠标来移动、旋转及调整大小



微信截图_20210514122506.png

图. 注释的鼠标交互节点



从 Target 拖动可移动箭头的末端。从文本区域拖动可设置新的Location。通过拖动圆形的location/锚节点,可以同时调整Anchor 和 Location 属性,将文本框保持在相同的位置。


按住 Shift 键,然后拖动resize (X)或resize (Y)节点来调整大小, 采用对称操作,两边会同时调整。按住Shift 键,然后从角位置上的节点resize (X+Y)拖动,在调整大小时还会保留屏幕纵横比。在旋转操作时,Shift 键可帮助以最近的15 度倍数的旋转角度转动。



调整外观


通过设置Style属性可选择注释的外形;其中的选项有:Rectangle、RectangleArrow、RoundedRectangle、RoundedRectangleArrow、Arrow、Callout、RoundedCallout、Ellipse、EllipseArrow、Triangle 和 TriangleArrow。

如果样式中带有箭头,可使用ArrowLineStyle、ArrowStyleBegin 和 ArrowStyleEnd 来控制箭头的图案。箭头末端的样式有以下几个选项: None、Square、Arrow、Circle 和 Caliper。

用 Fill 可修改注释的填充效果。编辑状态的鼠标交互节点外观可以从NibStyle中进行更改。用 TextStyle 则可以控制文本区域内的字体设置与文本对齐情况。用BorderLineStyle 和 CornerRoundRadius 可以控制边框线条的外观。


尺寸大小设置

用Sizing 属性可控制注释文本框的大小:
• Automatic 根据内容来调整大小,并给边框留出AutoSizePadding空间。

• AxisValuesBoundaries 可以根据轴值来设置注释的尺寸,具体可以用AxisValuesBoundaries.XMin、 XMax、 YMin 和 YMax来定义。

• ScreenCoordinates 可以通过屏幕坐标来设置尺寸,具体可以使用到SizeScreenCoords.Height 和 Width。


保持文本区域可见

开启 KeepVisible 后,注释的文本区域被强制放在图形内部,这时用鼠标或通过代码移动注释时,都不会将其移动到图形外。在平移图形视图或调整轴时,将重新定位注释以显示在图形内部。

在轴上显示注释

设置 RenderBehindAxes = True,注释显示在轴的下方。所有的剪辑和Z序功能在这种情况下都无法使用。如果设置ClipInsideGraph为true,则RenderBehindAxis不会起作用。

微信截图_20210514122900.png

图. 左侧, RenderBehindAxes = True;右侧, RenderBehindAxes = False. 二者中的ClipInsideGraph 都设置为False


图形内剪辑


开启 ClipInsideGraph 后,可在图形内部对注释剪辑。禁用后,注释也可在图表的图边距区域渲染。


开启 ClipWhenSweeping后,当设置ScrollMode为Sweeping模式时,注释不会在扫描间距区域显示。


控制Z序
当设置 Behind 属性为其默认值False时,注释显示在系列的上方。当设置为True时,注释在系列之前渲染,因此会出现在系列的下方。

注释按照它们在注释列表中的顺序显示,同时将Behind筛选程序作为主控制器。采用注释的ChangeOrder方法,例如鼠标事件处理程序,注释的Z序能够快速更改。用以改变Z序的选项有:

• BringToFront 注释处于最前

• SendToBack 置后

• MoveBack 向后移动一步

• MoveFront 向前移动一步

LayerGrouping性能优化

当要显示数百个带有可见文本的注释时,文本渲染延迟便开始产生重要的影响。默认情况下,文本渲染按照Z序进行,让文本牢牢地保留在注释中。

设置LayerGrouping = True,可以提高性能,而且图表将只使用两个平面注释文本层。一个用于设置Behind为True的注释,另一个用于设置Behind为的False注释。这可以大大提高性能。另一方面,如果有注释与其他注释重叠,则文本将出现渲染错误。

微信截图_20210514123156.png

图. 左侧, LayerGrouping = False;右侧, LayerGrouping = True, 文本的Z序丢失。



当采用 Style = Arrow 或设置注释填充不可见时,通常不会出现Z序的限制。



轴的值与屏幕坐标之间的转换

在一些情况中, Location 或 Target 可能需要在混合配置中加以定义,如屏幕坐标中的为X,轴的值为Y,反之亦然。采用轴ValueToCoord的方法可以将一个轴的值转换为一个屏幕坐标,用CoordToValue可以将一个屏幕坐标转换为一个轴的值(如第LightningChart数据可视化工具使用篇16-Y轴-数轴值与屏幕坐标的转换章节所述)。




遇到使用问题,关注Arction公众号可以跟官方技术支持在线聊天解决,技术支持这一块儿Lightningchart做的还是不错的。

LightningChar0t.png


最新版V10 LightningChart下载地址:猛击下载










回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-4-19 07:52

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表