1

私はImage以下に示すように持っています。を使用MatrixTransformすると、簡単にズームインおよびズームアウトできます。ズームが小さすぎる/大きすぎるかどうかをどのように検出できますか? たとえば、ズームを 10 ~ 200% に制限したいと思います。

<ScrollViewer x:Name="scrollViewer" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto">
   <Border x:Name="border" ClipToBounds="True" Width="Auto" Height="Auto">
     <Image x:Name="image" Source="test.png"/>
   </Border>
 </ScrollViewer>

実際の変換:

Point p = e.MouseDevice.GetPosition(image);

Matrix m = image.RenderTransform.Value;
if (e.Delta > 0)
    m.ScaleAtPrepend(1.1, 1.1, p.X, p.Y);
else
    m.ScaleAtPrepend(1.0 / 1.1, 1.0 / 1.1, p.X, p.Y);

// How do I know if the zoom level is lower than 10% or higher than 200%?
image.RenderTransform = new MatrixTransform(m);
4

1 に答える 1