2016-04-23 5 views
0

グラフにいくつかの注釈があります.3つは正確です。そのうちの2つはテキスト注釈です。これは表示する必要があります。その注釈は、それらが行っていることです。SciChart - 可視性がfalseに設定されているときにラインアロケーションが消えない

しかし、LineArrowAnnotationもあります。これは、基になるデータモデルの状態によって表示され、消える必要があります。ビューモデル内のboolプロパティにバインドされたVisibilityプロパティをバインドしました。

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

Xamlエディタの "ArrowVisible"プロパティでF12を押すと、ビューモデルの適切な場所に移動します。私はビューモデルのプロパティの値が私の期待通りに設定されていることをデバッガで確認し、変更がトリガされたときにプロパティのゲッタにアクセスします。

スクリーンショットでは、X1、X2、Y1、Y2座標(左と中央)を操作して矢印を配置できます。しかし、同じ方法で可視性を設定しようとすると、矢印の先端がまだ見えています(右)。私は矢印全体が実際に可視であると仮定していますが、矢印を無効にする変更でもすべての座標が0に設定されているため、グラフの端に表示されるため部分的にしか表示されません。

回避策として、注釈の線の太さをバインドしようとしましたが、矢印が非表示になっている場合は0に設定しました。

StrokeThickness="{Binding ArrowStrokeThickness}" 

これも効果がありませんでした。しかし、ArrowStrokeThicknessゲッターのブレークポイントが期待どおりにヒットしたため、バインディングが正しいことと値が読み取られることを確認しました。 (この回避策のためだけにこのプロパティを追加したので、どこからでもアクセスすることはできません)。

私は、可視の範囲外に矢印を置くことで回避することができたことを認識していますが、それは私のビューモデルをハックする必要がある醜い解決策です。

私はまだSciChartバージョン3.31を使用していますが、解決策を短期間でバージョン4.0.5に更新しました(私はこの変更をロールバックしています)。矢印注釈は動作していました同じ。

編集:知的財産権の理由から削除された画像。

答えて

0

この質問はSciChartフォーラムhere,here,hereおよびhereで何度もお願いしています。

解決策は、Annotation.IsHidden(boolean DependencyProperty)にバインドして注釈を表示または非表示にすることです。

+1

ありがとうございました。もともと私はSciChartのフォーラムで尋ねるつもりでしたが、あなたはここで質問に答えたいと思っていました。次回は、尋ねる前にもう少し詳しく調べていきます。 – Shaggydog

0

LineArrowAnnotationがUIElementのVisibilityプロパティを継承していることがわかりました。それは実際にそれをサポートするはずではなかったようです。どちらか、または実装が間違っています。とにかく、どのプロパティがLineArrowAnnotationクラスに属しているのかを調べて、矢印が非表示になっているときにHeadLengthプロパティをバインドして0に設定して、矢印を非表示にしました。

関連する問題