ScrollvViewer的ScrollToHorizo​​ntalOffset在Windows 8应用程序中不起作用

时间:2012-10-29 21:20:36

标签: c# xaml windows-8 microsoft-metro windows-runtime

我有一个Windows应用商店应用,其中包含ScrollViewerImage。当我双击ScrollViewer时,我希望它将图像缩放到其宽度。这部分不是问题,但我也希望Image在放大后进行居中。

我尝试在ScrollToHorizontalOffset上调用ScrollViewer方法,但它似乎不适用于我提供的任何数字。有什么问题?

3 个答案:

答案 0 :(得分:0)

也许偏移仅适用于非缩放视图,其中图像完全填满ScrollViewer,因此无法滚动。您可以尝试设置图像尺寸,使其大于ScrollViewer,但设置原始ZoomFactor,以便首先填充ScrollViewer。然后缩放和滚动可能会起作用。

答案 1 :(得分:0)

在scrollviewer中分配SizeChangedEvent。

<ScrollViewer SizeChanged="OnSizeChange"></ScrollViewer>
像这样。然后最好将图像放在画布中。所以你的代码可能就是这样。

<ScrollViewer SizeChanged="OnSizeChange" x:Name="scrl">
   <Canvas RenderTransformOrigin="0.5,0.5" x:Name="main">
       <Image source="" Canvas.Top="insert desire double value here", Canvas.Left="Same goes here"/>
   </Canvas>
</ScrollViewer>

然后在后面的代码中,您可以根据滚动查看器

更改您的游戏的高度和宽度

Main.Width = scrl.ViewPortWidth;    Main.Height = scrl.ViewPortHeight;

您可以在向canvass添加double tap event的同时试验canvas的大小。更改image的尺寸可以放大或缩小canvass,因为图片位于{{1}}

答案 2 :(得分:0)

尝试使用“ ChangeView”而不是“ ZoomToFactor”