SciChart - 当可见性设置为false时,LineArrowAnnotation不会消失

时间:2016-04-23 16:07:20

标签: scichart

我的图表中有一些注释,确切地说是3。其中两个是文本注释,我只需要保持可见,这就是他们正在做的事情。

但我也有一个LineArrowAnnotation,我需要根据我的基础数据模型的状态出现和消失。我已将Visibility属性绑定到视图模型中的bool属性。

<sci:LineArrowAnnotation Visiblity="{Binding ArrowVisible, Converter={StaticResource BooleanToVisibilityConverter}}"

在Xaml编辑器中按“箭头可见”属性上的F12将我带到视图模型中的适当位置。我在调试器中验证了我的视图模型属性的值是根据我的期望设置的,并且在触发更改时访问属性的getter。

正如您在截图中所做的那样,我可以通过操纵其X1,X2,Y1,Y2坐标(左侧和中间)来定位箭头。但是,如果我尝试以相同的方式设置可见性,箭头的尖端仍然可见(右)。我假设整个箭头实际上是可见的,但由于禁用箭头的更改也将所有坐标设置为0,它显示在图形的边缘,因此只能部分可见。

作为一种解决方法,我甚至尝试绑定注释的笔触粗细,如果应该隐藏箭头,则将其设置为0。

StrokeThickness="{Binding ArrowStrokeThickness}"

这也没有任何效果。但是,它用于验证绑定是否正确并且读取了值,因为ArrowStrokeThickness getter中的断点按预期命中。 (我为此解决方法添加了此属性,因此无法从其他任何位置访问它。)

我意识到我可以通过将箭头置于可见范围之外来解决它,因为它不应该是可见的,但这是一个丑陋的解决方案,需要我破解我的视图模型。

我想补充一点,当我还在使用SciChart版本3.31时,我已经将解决​​方案简要更新到版本4.0.5(我已经回滚了这个更改)并且箭头注释表现为相同。

编辑:出于知识产权原因删除了图片。

2 个答案:

答案 0 :(得分:0)

所以我发现LineArrowAnnotation从UIElement继承了Visibility属性。它似乎不应该真正支持它。要么是,要么实施不正确。无论如何,我查看了哪些属性实际上属于LineArrowAnnotation类,我设法通过绑定HeadLength属性来隐藏箭头,并在箭头被隐藏时将其设置为0。

答案 1 :(得分:0)

在SciChart论坛herehereherehere上多次询问此问题。

接受的解决方案是绑定到Annotation.IsHidden(布尔值DependencyProperty)以显示或隐藏注释。