UWP Fit 可缩放图像在其容器中
UWP Fit zoomable image in its container
为了使图像可缩放,我使用像这样的 ScrollViewer
包装图像控件:
<Page ...>
<ScrollViewer ZoomMode="Enabled" HorizontalScrollMode="Auto" VerticalScrollMode="Auto">
<Image Source="http://i.imgur.com/iseJWq1.jpg" />
</ScrollViewer>
</Page>
我希望调整图像大小以在水平和垂直方向上都适合页面,就像 Image
控件的 Stretch="Uniform"
行为一样:
但它会调整图像大小以使其仅在水平方向上适合,剪掉垂直方向上多余的图像:
我从 this website 开始有了一些领先优势,所以我将 xaml 更改为:
<Page x:Name="Page"
... />
<ScrollViewer ZoomMode="Enabled" HorizontalScrollMode="Auto" VerticalScrollMode="Auto">
<Image Source="http://i.imgur.com/iseJWq1.jpg" Width="{Binding ActualWidth, ElementName=Page}" Height="{Binding ActualHeight, ElementName=Page}" />
</ScrollViewer>
</Page>
虽然这在事物的拉伸方面效果很好,但图像随后会与屏幕左侧对齐,当您缩放时会发生奇怪的事情 in/out:
使用图像的 Stretch
属性无效。
然后如何在最初将图像放入其容器内时使图像可缩放,就像任何照片查看器应用程序一样?
这个有效:
<Page x:Name="Page" ...>
<ScrollViewer ZoomMode="Enabled" MinZoomFactor="1" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<Image Source="http://i.imgur.com/iseJWq1.jpg" MaxWidth="{Binding ActualWidth, ElementName=Page}" MaxHeight="{Binding ActualHeight, ElementName=Page}"/>
</ScrollViewer>
</Page>
...这正是文章推荐的做法。
为了使图像可缩放,我使用像这样的 ScrollViewer
包装图像控件:
<Page ...>
<ScrollViewer ZoomMode="Enabled" HorizontalScrollMode="Auto" VerticalScrollMode="Auto">
<Image Source="http://i.imgur.com/iseJWq1.jpg" />
</ScrollViewer>
</Page>
我希望调整图像大小以在水平和垂直方向上都适合页面,就像 Image
控件的 Stretch="Uniform"
行为一样:
但它会调整图像大小以使其仅在水平方向上适合,剪掉垂直方向上多余的图像:
我从 this website 开始有了一些领先优势,所以我将 xaml 更改为:
<Page x:Name="Page"
... />
<ScrollViewer ZoomMode="Enabled" HorizontalScrollMode="Auto" VerticalScrollMode="Auto">
<Image Source="http://i.imgur.com/iseJWq1.jpg" Width="{Binding ActualWidth, ElementName=Page}" Height="{Binding ActualHeight, ElementName=Page}" />
</ScrollViewer>
</Page>
虽然这在事物的拉伸方面效果很好,但图像随后会与屏幕左侧对齐,当您缩放时会发生奇怪的事情 in/out:
使用图像的 Stretch
属性无效。
然后如何在最初将图像放入其容器内时使图像可缩放,就像任何照片查看器应用程序一样?
这个有效:
<Page x:Name="Page" ...>
<ScrollViewer ZoomMode="Enabled" MinZoomFactor="1" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<Image Source="http://i.imgur.com/iseJWq1.jpg" MaxWidth="{Binding ActualWidth, ElementName=Page}" MaxHeight="{Binding ActualHeight, ElementName=Page}"/>
</ScrollViewer>
</Page>
...这正是文章推荐的做法。