2011-10-20 12 views
6

私はシルバーライトCanvasを持っています。このイメージには、図面が描かれたイメージ(ポリゴン)があります。以下のように、このキャンバスを作業領域(、Gridセル内)にズームしてパンするコントロールを開発する必要があります。これを行う最善の方法は何ですか。私が利用できるライブラリはありますか?イメージキャンバスのズームとパンニング

私はズーム/パンキャンバスにも図面を追加できる必要があります。

http://i54.tinypic.com/1zbe7pf.png

+0

イメージの代わりにズームスライダでキャンバス自体を実際に拡大して、キャンバスが作業領域全体を埋めるようにしますか? – Jack

+0

はい。画像上のマーキングが適所にあるべきであるからである。 – blitzkriegz

+0

キャンバスが作業領域全体を塗りつぶすかどうかは、ズームスライダを使用してどれだけのズームが設定されているかによって異なります。 – blitzkriegz

答えて

1

あなたは基本的にキャンバス内の画像であるユーザーコントロールを作成してみてください、とズームやパンを制御するために2つの変換プロパティを公開することができます。 ScaleTransformはズームを処理し、TranslateTransformはパンを処理します。両方からCompositeTransformを作成し、それをキャンバスのRenderTransformとして割り当てることができます。

ズームスライダをScaleTransformにバインドし、マウスイベントを処理してTranslateTransformを変更することができます。キャンバス自体に相対的なマウス座標を取得する限り(つまり、mouseEventArgs.GetPosition(canvas))、

2

多くのコード例がインターネット上で利用可能です。 ZoomControlCodePlexをチェックしてください。

+2

+1、なぜ車を改革するのですか? –

関連する問題