Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 缩小图像以适应ScrollViewer尺寸_Image_Windows Runtime_Zooming_Scrollviewer - Fatal编程技术网

Image 缩小图像以适应ScrollViewer尺寸

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"

我对相应地缩放图像有点问题。我的XAML中有一个
图像
,附带了一个
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的大小吗?