我有一个Windows商店的应用程序,有一个 ScrollViewer
和一个 Image
中。当我双击 ScrollViewer
我想让它把图像放大到它的宽度。这一部分不是问题,但我还想让它的 Image
缩放后居中。
我试着调用 ScrollToHorizontalOffset
的方法 ScrollViewer
但我给它的号码似乎都不能用。问题出在哪里?
也许偏移只对非缩放视图有效,因为你的图像完全填满了ScrollViewer,因此不能滚动。你可以尝试设置图像尺寸,使其大于ScrollViewer,但设置原始的ZoomFactor,使其首先充满ScrollViewer。然后再进行缩放和滚动可能就可以了。
在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