我在相应地缩放图像时遇到了一些问题。我有一个Image
在我的 XAML 中,带有ScrollViewer
附加以便可以缩放。像这样 :
<ScrollViewer x:Name="ImageScrollViewer">
<Image x:Name="ImagePanel"
Stretch="Uniform"
VerticalAlignment="Center"
HorizontalAlignment="Center"/>
</ScrollViewer>
我想做的是,如果图像太大而无法适应图像控件并且需要缩小(仅在这种情况下),我想以编程方式设置 ScrollViewer 的 ZoomFactor 以使其适合图像控件。我的问题是,考虑到图像的宽度和高度,我真的不知道如何确定该因素。
另外,我不想缩放图片,以任何方式改变它,我在这个问题上看到过一些类似的主题,但到目前为止,没有一个适用于我的案例。我只需要缩小图片,直到看不到垂直/水平滚动条。
任何有关如何执行此操作的建议,我们将不胜感激,谢谢!
您可以设置尺寸(Width
, Height
) 的Image
来匹配ScrollViewer.ViewportWidth/Height
,因此默认情况下所有图像都是可见的。然后设置MinZoomFactor
到 1,这样就没有人会超出有意义的范围,并且MaxZoomFactor
到一些有意义的事情。
如果您想要更多控制 - 将图像大小属性保留为默认值Auto
(and VerticalAlignment
/HorizontalAlignment
不同于Stretch
),比较纵横比ScrollViewer
(ViewportWidth/ViewportHeight
)到Image
(ActualWidth/ActualHeight
假设Image.Stretch="None"
并且那Image
实际已加载)。如果ScrollViewer
纵横比更宽 -MinZoomFactor
你会想要的ScrollViewer.ViewportHeight / Image.ActualHeight
。如果Image
纵横比更宽 -MinZoomFactor
你会想要的ScrollViewer.ViewportWidth / Image.ActualWidth
. MaxZoomFactor
无论如何,除非您想要缩放到每个图像像素超过屏幕像素(在应用程序的 100% 缩放下),否则应该为 1。
您可能会发现我的博客文章很有趣:
http://blog.onedevjob.com/2012/07/21/creating-a-zoomable-scrollviewer-with-zoomsnappoints-in-winrt-xaml/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)