2011-01-17 11 views
0


スクロールビューアには大きなキャンバスが含まれています。ユーザーはマウスでドラッグするかスクロールバーを使用してキャンバスを移動できます。
現在の中心点を維持しながらスクロールビューアでズーム(縮尺)を変更するにはどうすればよいですか?
私は問題がScaleTransformの正しいCenterXとCenterYを得ていると思う:任意のヒントについてSL4:キャンバスをスクロールせずにスケールを変更するにはどうすればよいですか?

 var st = MapCanvas.RenderTransform as ScaleTransform; 
     if (null != st) 
     { 
      st.CenterX = point.X; 
      st.CenterY = point.Y; 
      st.ScaleX = st.ScaleY = scale; 
     } 

おかげで...

答えて

0

それは私がトランスフォームを見て以来、しばらくしているが、あなたがしたいかもしれませんMapCanvasのRenderTransformOriginをnew Point(0.5, 0.5)に設定してみてください(またはXAMLで設定してください)。

+0

返信いただきありがとうございますが、スクロールビューアにキャンバスの中心を置くように聞こえますが、これは私が望むものではありません。キャンバスが1000 x 1000で、キャンバスの座標が200,200がsvの中心にある場合は、縮尺が変更されたときにキャンバスの座標を200,200のままにしておきたいと思います。 – Number8

+0

ああ、そうだ。ミスアンダーストーン - 申し訳ありませんが、私はあなたが探しているものを行う方法がわかりません。 –

関連する問題