缩小图像以适合ScrollViewer尺寸
我对缩放相应的图像有点问题。我的XAML中有一个Image
,附有ScrollViewer
,因此可以缩放。就像这样:缩小图像以适合ScrollViewer尺寸
<ScrollViewer x:Name="ImageScrollViewer">
<Image x:Name="ImagePanel"
Stretch="Uniform"
VerticalAlignment="Center"
HorizontalAlignment="Center"/>
</ScrollViewer>
我想要做的是,如果图像是太大,以适应图像控制,需要缩小(仅在这种情况下),我想以编程方式设置ScrollViewer的ZoomFactor,使其适合Image控件。我的问题是,我真的不知道如何确定这个因素,考虑到我的图像的宽度和高度。
此外,我不想扩大图片,以任何方式改变它,我看过一些类似的话题在这个问题上,但到目前为止,没有人申请我的情况。我只需要缩小我的照片,直到没有可见的垂直/水平滚动条。
关于如何做到这一点的任何建议,非常感谢,谢谢!
您可以设置尺寸Image
的(Width
,Height
)相匹配的ScrollViewer.ViewportWidth/Height
,所以在默认情况下所有的图像是可见的。然后将MinZoomFactor
设置为1,以便没有人缩小超出有意义范围的范围,并将MaxZoomFactor
设置为有意义的范围。
如果你想要更多的控制 - 留在默认Auto
(比Stretch
不同VerticalAlignment
/HorizontalAlignment
)的图像大小属性时,ScrollViewer
(ViewportWidth/ViewportHeight
)的纵横比进行比较的Image
(ActualWidth/ActualHeight
假设Image.Stretch="None"
,而且Image
是实际加载)。如果ScrollViewer
宽高比更宽 - MinZoomFactor
您将需要ScrollViewer.ViewportHeight/Image.ActualHeight
。如果Image
宽高比更宽 - MinZoomFactor
您将需要ScrollViewer.ViewportWidth/Image.ActualWidth
。 MaxZoomFactor
应该为1,除非您想缩放到每个图像像素的多个屏幕像素(在应用程序的100%缩放比例下)。
你可能会发现我的博客文章有意思:
你知道你的ScrollViewer的大小? – 2013-02-25 01:56:11