使用ScrollViewer进行图像捏合缩放,可以在平移上保持捕捉

时间:2012-12-08 22:59:14

标签: xaml windows-8 microsoft-metro winrt-xaml

我正在尝试使用XAML ScrollViewer“便宜地”为图像添加缩放缩放。然而问题是,当在图像周围平移时,它会一直拍到最左边。如果我向右滑动它看起来很好,但是第二个我释放图像,它会向左移动。

此问题仅在水平方向上持续存在 - 对于垂直平移,它可以正常工作。

我将此抽象为最简单的测试用例,并且它仍然存在。我的XAML代码如下:

    <ScrollViewer>
        <Image Source="http://i.imgur.com/1WlGT.jpg" />
    </ScrollViewer>

感谢任何帮助。

2 个答案:

答案 0 :(得分:14)

我已经解决了这个问题。

问题是您必须将Horizo​​ntalScrollBarVisibility设置为true。

<ScrollViewer x:Name="scrollViewer" 
                  VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" 
                  ZoomMode="Enabled">
        <Image Source="http://i.imgur.com/1WlGT.jpg" />
    </ScrollViewer>

答案 1 :(得分:3)

只是说明Michal Strzalkowski在他的评论中提到的可能的解决方案,在你的答案下面,图像以全尺寸显示(不适合容器边界)。使用绑定 ElementName 路径

快速修复XAML
<ScrollViewer x:Name="SV_ImageZoom"           
              MaxZoomFactor="3"
              MinZoomFactor="1"
              ZoomMode="Enabled"                          
              HorizontalScrollBarVisibility="Auto"
              VerticalScrollBarVisibility="Auto">
    <Image Source="http://i.imgur.com/1WlGT.jpg"
           Width="{Binding Path=ViewportWidth, ElementName=SV_ImageZoom}" />
</ScrollViewer>