我有一个带有 aScrollViewer
和 an的 Windows 应用商店应用程序Image
。当我双击时,ScrollViewer
我希望它将图像缩放到它的宽度。这部分不是问题,但我也希望在Image
放大后居中。
我尝试在 上调用该ScrollToHorizontalOffset
方法,ScrollViewer
但它似乎不适用于我给它的任何数字。问题是什么?
我有一个带有 aScrollViewer
和 an的 Windows 应用商店应用程序Image
。当我双击时,ScrollViewer
我希望它将图像缩放到它的宽度。这部分不是问题,但我也希望在Image
放大后居中。
我尝试在 上调用该ScrollToHorizontalOffset
方法,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
添加 a 时试验它的大小double tap event
。更改大小canvas
可以放大或缩小,image
因为图像在内部canvass
也许偏移量仅适用于您的图像完全填充 ScrollViewer 并因此无法滚动的非缩放视图。您可以尝试设置图像尺寸,使其大于 ScrollViewer,但设置原始 ZoomFactor,使其首先填充 ScrollViewer。然后缩放和滚动可能会起作用。
尝试使用“ChangeView”而不是“ZoomToFactor”