我的图表中有一些注释,确切地说是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(我已经回滚了这个更改)并且箭头注释表现为相同。
编辑:出于知识产权原因删除了图片。