私はシルバーライトCanvas
を持っています。このイメージには、図面が描かれたイメージ(ポリゴン)があります。以下のように、このキャンバスを作業領域(、Grid
セル内)にズームしてパンするコントロールを開発する必要があります。これを行う最善の方法は何ですか。私が利用できるライブラリはありますか?イメージキャンバスのズームとパンニング
私はズーム/パンキャンバスにも図面を追加できる必要があります。
http://i54.tinypic.com/1zbe7pf.png
私はシルバーライトCanvas
を持っています。このイメージには、図面が描かれたイメージ(ポリゴン)があります。以下のように、このキャンバスを作業領域(、Grid
セル内)にズームしてパンするコントロールを開発する必要があります。これを行う最善の方法は何ですか。私が利用できるライブラリはありますか?イメージキャンバスのズームとパンニング
私はズーム/パンキャンバスにも図面を追加できる必要があります。
http://i54.tinypic.com/1zbe7pf.png
あなたは基本的にキャンバス内の画像であるユーザーコントロールを作成してみてください、とズームやパンを制御するために2つの変換プロパティを公開することができます。 ScaleTransformはズームを処理し、TranslateTransformはパンを処理します。両方からCompositeTransformを作成し、それをキャンバスのRenderTransformとして割り当てることができます。
ズームスライダをScaleTransformにバインドし、マウスイベントを処理してTranslateTransformを変更することができます。キャンバス自体に相対的なマウス座標を取得する限り(つまり、mouseEventArgs.GetPosition(canvas)
)、
イメージの代わりにズームスライダでキャンバス自体を実際に拡大して、キャンバスが作業領域全体を埋めるようにしますか? – Jack
はい。画像上のマーキングが適所にあるべきであるからである。 – blitzkriegz
キャンバスが作業領域全体を塗りつぶすかどうかは、ズームスライダを使用してどれだけのズームが設定されているかによって異なります。 – blitzkriegz