スクロールビューア内で画像をズームイン/ズームアウトするときに問題が発生します。ズームインボタンを使用すると、ボタンがクリックされるたびに、画像の幅/高さが元のサイズの1.25になるようにダブルアニメーションが使用されます。倍率を0.75に設定するズームアウトボタンについても同じことが言えます。ここまでは順調ですね。
問題は、scrollviewer IDの中心を基準にしてクリックした場所に基づいて、クリックポイントに向かってスクロールしたいということです。これに基づいてデルタx/yを計算します。これは、x軸とy軸のスクロールの方向を決定するために使用されます。
double deltaX = (ClickPosition.X - center.X)
double deltaY = (ClickPosition.Y - center.Y)
ここで、垂直スクロールバーと水平スクロールバーにデルタを適用するときに、画像の現在のズーム率を考慮する必要があります(これも二重アニメーションでアニメーション化されます)。
ズームとスクロールを同時に行うと、最終的な位置が期待どおりになりません。画像スケーリングの原点は常に画像の0,0(左上隅)にあるように見えるので、それをどのように処理するかわからないため、中央の左側をクリックすると、クリックするよりも左に強くスクロールします中央の右側。
例: http: //212.214.41.66/SilverlightZoom/RealQImageMapTestPage.html
ソース: http: //212.214.41.66/SilverlightZoom/ImageMap.zip