我在 ScrollViewer
中有一张 Image
。其中一些图片太大,无法适应 Page
的大小。当首次显示时,如何将 Image
的大小调整为 Page
大小?
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<Image Stretch="None" />
</ScrollViewer>
更新的答案
根据Filip在这里给出的答案以及他对类似问题的另一个回答,我做了以下修改。
XAML:
<ScrollViewer x:Name="scrollViewer">
<Image x:Name="image" Stretch="None" SizeChanged="ImageSizeChanged" />
</ScrollViewer>
代码后台:
private bool imageSizeSet;
private void ImageSizeChanged( object sender, SizeChangedEventArgs e )
{
if( imageSizeSet || !( image.ActualWidth > scrollViewer.ViewportWidth ) && !( image.ActualHeight > scrollViewer.ViewportHeight ) )
{
return;
}
// If the image is larger than the screen, zoom it out.
var zoomFactor = (float)Math.Min( scrollViewer.ViewportWidth / image.ActualWidth, scrollViewer.ViewportHeight / image.ActualHeight );
scrollViewer.ZoomToFactor( zoomFactor );
imageSizeSet = true;
}
theScrollViewer.ZoomToFactor(1);
。我没有看到任何被裁剪的内容。你确定将Stretch
设置为Uniform
了吗? - Filip SkakuntheScrollViewer.MinZoomFactor = 1;
。 - Filip Skakun