キャンバスコントロールの中心を原点にして画像を拡大したい。最初はレンダリングの変換がうまくいったが、ズーム後にスクロールバーが表示されなかったそれについてレイアウト変換がその目的のために使用されるべきであることを発見しました。私の問題はズーム後にスクロールバーを取得していますが、ズーム原点がキャンバスの左上にあります。イメージの中心をレイアウト変換の元にズーム
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<Canvas x:Name="grdMain" RenderTransformOrigin="0.5,0.5">
<Image Source="{Binding BmpImageSource,UpdateSourceTrigger=PropertyChanged}" x:Name="TargetImage" >
</Image>
<!-- <Canvas.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="{Binding ScaleFactor}" ScaleY="{Binding ScaleFactor}" />
</TransformGroup>
</Canvas.RenderTransform>-->
<Canvas.LayoutTransform>
<TransformGroup>
<ScaleTransform ScaleX="{Binding ScaleFactor}" ScaleY="{Binding ScaleFactor}" />
</TransformGroup>
</Canvas.LayoutTransform>
</Canvas>
</ScrollViewer>
私はレイアウト変換にcenterXとcenterYを設定すると言っていますが、アプリケーションのサイズが動的で固定されていない場合があります。
<ScaleTransform ScaleX="{Binding ScaleFactor}" ScaleY="{Binding ScaleFactor}"
CenterX="250" CenterY="250"/>