在Windows Phone 8.1中使用scrollviewer进行缩放时的平移问题

时间:2015-07-24 21:05:45

标签: c# windows-runtime windows-phone-8.1 msdn

我正在使用flipview来重新创建与照片应用完全相同的内容。 我在限制滚动区域(平移区域)时遇到问题,就像我不希望用户在没有图像的暗区域中缩放/滚动一样。我可以通过插入一个stackpanel来做到这一点,但必须指定它的高度和宽度作为图像的宽度。但是我无法设置它,因为我无法获得图像的正确高度和宽度细节。

代码:

<ScrollViewer x:Name="theScrollViewer" 
ViewChanged="theScrollViewer_ViewChanged"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
VerticalScrollBarVisibility="Auto" 
HorizontalScrollBarVisibility="Auto" 
ZoomMode="Enabled" MinZoomFactor="1" MaxZoomFactor="2" 
SizeChanged="OnSizeChanged">
    <StackPanel Orientation="Horizontal">
           <Image x:Name="theImage"
                       Stretch="Uniform" Source="Assets/2222.png"  />
     </StackPanel>
</ScrollViewer>

任何人都可以帮我解决这个问题吗? 或任何替代方案。

编辑: 它无助于将堆叠面板的高度和宽度动态设置为图像高度和尺寸的缩放版本。宽度由 ImageProperties 获得。有没有其他选择

1 个答案:

答案 0 :(得分:0)

通过this博客找出答案(虽然不是那么完美)。

我遇到的主要问题是: 当我们不做的时候

 VerticalScrollBarVisibility="Auto" 
HorizontalScrollBarVisibility="Auto" 

在这个滚动查看器中,我们得到一个捕捉到左边不需要的效果,当我们默认情况下这样做时,我们得到一个更大的图像,图像不均匀。 这可以通过博客的帮助解决,方法是使用转换器将Flipview(父级)maxheight和maxwidth设置为设备高度宽度。更改方向时仍然会遇到问题,因此需要使用onWindowSize事件处理程序来重置Flipview的最大高度和宽度。(虽然注意这不是一个平滑的答案)。