UserControl に scrollviewer を実装しています。scrollviewer 内には、キャンバスを含む Grid があります。Canvas の内部には Image があります。このようなもの。
<ScrollViewer x:Name="ImageScrollViewer"
HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"
HorizontalContentAlignment="Center" HorizontalAlignment="Center"
VerticalContentAlignment="Center" VerticalAlignment="Center"
MouseEnter="TargetImage_OnMouseEnter" MouseLeave="TargetImage_OnMouseLeave" >
<Grid x:Name="ImageGrid" ClipToBounds="True">
<Grid.LayoutTransform>
<TransformGroup>
<ScaleTransform x:Name="ScaleTransform" ScaleX="{Binding ZoomScaleFactor}" ScaleY="{Binding ZoomScaleFactor}" Changed="ScaleTransform_OnChanged"/>
</TransformGroup>
</Grid.LayoutTransform>
<Canvas Name="ImgCanvas">
<Image Source="{Binding BmpImageSource, UpdateSourceTrigger=PropertyChanged}" x:Name="LoadedImage"
MaxWidth="1920" MaxHeight="1080"
ClipToBounds="True" Style="{x:Null}"
Stretch="Uniform" StretchDirection="Both"
HorizontalAlignment="Center" VerticalAlignment="Center">
</Image>
</Canvas>
</Grid>
</ScrollViewer>
私が欲しいのは、画像がロードされたときに表示領域に収まるようにすることです。グリッドの幅を親に設定するなど、これを行うためにいくつかのことを試みましたが、期待どおりに何も機能していないようです。誰かがこれで私を助けることができれば本当に感謝しています.