2010-11-19 10 views
3

私が使用しているSilverlightチャートでズームを有効にする必要があります。これはSilverlight Toolkitです。私が理解している限り、SL Toolkitチャートはズームをサポートしていませんが、私はこの機能を実装しようとしています。 ScaleTransformsをSeries要素に適用すると、期待通りに機能しません。Silverlight Toolkitチャートをズームしますか?

誰でもSilverlight Toolkitのズーム実装のサンプルコードを提供できますか?

+0

'ScaleTransform'をグラフ全体に適用してみましたか? – Stephan

+0

はい:シリーズはスケールアップされましたが、チャートからはがれていました。クリッピング&トランスレート変換を適用して正しい場所に移動する必要があると思います。さらに、エフェクトはズームよりも虫眼鏡のようなものでした。 – JohnC

+2

私のブログでこれについての解決策を書いたばかりです: http://geoffwebbercross.blogspot.com/2011/02/silverlight-4-toolkit-zoom-and-pan.html –

答えて

6

私は以前しかし、理由は(​​おそらく)次の理由で失敗した、Silverlightのツールキットのチャート上でズーム実装に見てきました:

  • のSilverlight Toolkitのチャートができるように設計されているようには見えません。ズーミングのために拡大する。いくつかのズームロジックを簡単に攻撃することができるフックはありません。ズームを作成したい場合は、あまりにも多くのことをする必要があります。
  • ズームを実装する最も簡単な方法は、ScaleTransformとRenderTransformを要素に使用することです。 Silverlight Toolkitの場合は、これをシリーズに適用します。しかしちょうど正しいScaleTransformを計算し、OffsetTransformは困難
  • スケーリング、十分なあなたはすべてがを拡張したくないです。ポイントを含むラインシリーズで4倍にズームすると、ラインの太さが4倍になり、ポイントが4倍大きくならないようにします。つまり、ScaleTransformsとRenderTransformsを正しく適用する実装を行ったとしても、あなたが得られるのは虫眼鏡です。これはまだ理想とはかけ離れています。

私は数時間後、SLツールキットチャートにこの種のサポートを追加することを断念し、ズームをサポートするその他のコンポーネントを探して、適切なAPIを持ってそれに対処しました。これらは、(私はより多くのがあると確信していますが)私が見つけたコンポーネントです:

  • Visiblox Charts free version:それは素敵なAPIを持っており、ズームをimplentingするthis blog postに従ってXAMLのわずか数行を取る(これも上の記事を参照してくださいa comparison with SL toolkit charts)。 全開示:私はこのライブラリの開発に深く関わっています。
  • Infragistics xamWebChartbased on this exampleをズームできるように思える彼らのチャートも
  • Telerik RadCharts
  • のプレミアムバージョンにズームのサポートを持っていると主張する - あなたがこの機能を自分で実装する必要があるだろうかどうか私にははっきりしていないのに。それを要約

は、私はあなたがすでに実装変倍たコンポーネントとそれに行くための最も簡単な方法を考える - 私の経験から、それが適切なズーム+ Silverlightのツールキットにパンを追加するための投資のたくさんを取りますチャート。

+0

私はScaleTransformを試しましたが、あなたが言及した問題に遭遇しました。私はあなたが言及したコンポーネントが提供しなければならないものを見ていきます、ありがとう! – JohnC

0

あなたは簡単に以下のXAMLでズーム機能を追加することができます。

<charting:ChartArea.ZoomScrollSettingsX> 
    <charting:ZoomScrollSettings ScrollMode="ScrollAndZoom" MinZoomRange="0.005"/> 
</charting:ChartArea.ZoomScrollSettingsX> 

あなたは、こちらをクリックしてdemoをチェックアウトすることができ、ソースコードは、同じタブにも使用可能です。

関連する問題