如何在ScrollViewer中找到缩放图像的顶角坐标?

时间:2016-06-25 19:04:58

标签: win-universal-app uwp windows-10-universal uwp-xaml

我在ScrollViewer中有一个图像,我使用此代码从中心缩放(通过设置RenderTransformOrigin完成),但无论缩放如何,ScrollViewer的水平/垂直偏移都保持为零。我正在使用ScaleTransform进行缩放,并且该部分工作得很好,但转换实际上并没有修改图像 - 我认为这是问题所在。 ScrollViewer不会“知道”图像滚动,因此不会调整偏移。

考虑到某种程度的滚动,我可以计算视口的左上角x / y吗?此外,我不能理解偏移的目的 - 给定xaml和我的图像大小640x480(ScrollViewer是600x480)所以偏移量不应该为零,是吗?

尝试将此信息传递给裁剪方法。

<ScrollViewer  Width="600"  x:Name="ScrollViewerImage" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Hidden" ZoomMode="Enabled" >
  <CaptureElement Name="PreviewControl" Width="Auto" RenderTransformOrigin="0.5 0.5"  DoubleTapped="PreviewControl_DoubleTapped"  Stretch="Uniform">
    <CaptureElement.RenderTransform >
        <ScaleTransform  x:Name="ZoomScale" />
    </CaptureElement.RenderTransform>
  </CaptureElement>
</ScrollViewer>

1 个答案:

答案 0 :(得分:1)

跳过整个RenderTransform的东西。正如我所说,ScrollViewer有自己的缩放。看看ZoomToFactor()。这将使你前进。然后,您将使用ScrollViewer.ZoomFactor和水平和垂直偏移值,并且您将能够确定裁剪。