Image 缩小图像以适应ScrollViewer尺寸
我对相应地缩放图像有点问题。我的XAML中有一个Image 缩小图像以适应ScrollViewer尺寸,image,windows-runtime,zooming,scrollviewer,Image,Windows Runtime,Zooming,Scrollviewer,我对相应地缩放图像有点问题。我的XAML中有一个图像,附带了一个ScrollViewer,可以对其进行缩放。像这样: <ScrollViewer x:Name="ImageScrollViewer"> <Image x:Name="ImagePanel" Stretch="Uniform" VerticalAlignment="Center" HorizontalAlignment="Center"
图像
,附带了一个ScrollViewer
,可以对其进行缩放。像这样:
<ScrollViewer x:Name="ImageScrollViewer">
<Image x:Name="ImagePanel"
Stretch="Uniform"
VerticalAlignment="Center"
HorizontalAlignment="Center"/>
</ScrollViewer>
我想做的是,如果图像太大,不适合图像控件,需要缩小(仅在这种情况下),我想通过编程设置ScrollViewer的ZoomFactor,使其适合图像控件。我的问题是,考虑到我的图像的宽度和高度,我真的不知道如何确定这个因素
此外,我不想缩放图片,以任何方式改变它,我已经看到了一些类似的主题,所以在这个问题上,但到目前为止,没有适用于我的情况。我只需要缩小图片,直到看不到垂直/水平滚动条
非常感谢您对如何做到这一点提出的任何建议,谢谢 您可以设置
图像
的尺寸(宽度
,高度
)以匹配ScrollViewer.ViewportWidth/Height
,这样默认情况下所有图像都可见。然后将MinZoomFactor
设置为1,这样就不会有人缩小到超出合理范围,也不会将MaxZoomFactor
设置为合理范围
如果您想要更多的控制-将图像大小属性保留在默认的自动
(和垂直对齐
/水平对齐
不同于拉伸
),比较滚动查看器
(视口宽度/视口高度
)与图像的纵横比(ActualWidth/ActualHeight
假设Image.Stretch=“None”
并且实际加载了图像)。如果ScrollViewer
纵横比更宽,则所需的MinZoomFactor
将是ScrollViewer.ViewportHeight/Image.ActualHeight
。如果Image
纵横比更宽,则所需的MinZoomFactor
将是ScrollViewer.ViewportWidth/Image.ActualWidth
MaxZoomFactor
应为1,除非您希望缩放到每个图像像素超过屏幕像素(在应用程序100%缩放时)
你可能会发现我的博客文章很有趣:
您知道ScrollViewer的大小吗?