ScrollViewer的ScrollToHorizontalOffset在Windows 8应用中不起作用。

问题描述 投票:1回答:2

我有一个Windows商店的应用程序,有一个 ScrollViewer 和一个 Image 中。当我双击 ScrollViewer 我想让它把图像放大到它的宽度。这一部分不是问题,但我还想让它的 Image 缩放后居中。

我试着调用 ScrollToHorizontalOffset 的方法 ScrollViewer 但我给它的号码似乎都不能用。问题出在哪里?

c# xaml windows-8 microsoft-metro windows-runtime
2个回答
0
投票

也许偏移只对非缩放视图有效,因为你的图像完全填满了ScrollViewer,因此不能滚动。你可以尝试设置图像尺寸,使其大于ScrollViewer,但设置原始的ZoomFactor,使其首先充满ScrollViewer。然后再进行缩放和滚动可能就可以了。


0
投票

在scrollviewer中分配一个SizeChangedEvent。

<ScrollViewer SizeChanged="OnSizeChange"></ScrollViewer>

像这样。那么最好是把你的图片放在一个canvas里面。所以你的代码大概会是这样的。

<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>

然后在后面的代码中,你可以根据滚动查看器来改变canvass的高度和宽度。

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

你可以试验一下 canvass 而加一个 double tap event 到它。改变 canvas 可以放大或缩小 image 因为图像在 canvass

© www.soinside.com 2019 - 2024. All rights reserved.