最初に中央に配置された画像を表示する WPF アプリを作成しています。ユーザーは、 と を使用して実装されている画像の拡大/縮小と移動を行うことができScaleTransform
ますTranslateTransform
。それはうまくいきます。
問題は、画像がウィンドウよりもかなり大きく、ユーザーが画像を移動したり、画像全体が見えるようにズームアウトしたりする場合です。元々非表示だった画像の部分はレンダリングされず、代わりに画像の元々表示されていた部分のみが描画されます。
他のいくつかの 質問に基づいて、画像を の中に入れると、画像Canvas
全体がレンダリングされ、移動すると正しくレンダリングされます。Canvas
問題は、他のレイアウトが発生するのを防ぐため、画像を に配置したくないことです.HorizontalAlignment
およびVerticalAlignment
プロパティは無視されます (したがって、画像は中央に配置されなくなります)。描画するオプションを実装する必要があります。ウィンドウの領域全体を埋めるために画像をできるだけ大きくすると、機能しなくなります (Stretch
プロパティを に設定しても何も起こりUniformToFill
ません)。
現在、2 つの変換がRenderTransform
プロパティに設定されています。代わりに使用LayoutTransform
すると、画像全体が描画されますが、これにより、ユーザーが画像の一部をウィンドウの端から移動することもできなくなります (これは維持したい動作です)。
Canvas
またはを使用せずに常に画像全体をレンダリングするように WPF に指示するにはどうすればよいLayoutTransform
ですか?