0
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="StackStuff.MainPage">

    <StackLayout Orientation="Vertical">
        <Image Source="image.jpg" VerticalOptions="Fill" HorizontalOptions="Fill"/>
    </StackLayout>

</ContentPage>

我有一个 Xamarin.Forms 项目,我希望图像在 StackLayout 中调整大小。我将其简化为上面的最小代码,如果我调整窗口大小,图像只会根据窗口宽度调整大小。即,如果我改变高度,图像会从窗口底部剪掉。

如果我将 StackLayout 的方向更改为水平,我会得到相反的结果 - 它会根据高度的变化而不是宽度来调整大小。

如果我完全删除 StackLayout 并且页面上只有图像,那么整个图像将始终可见,这是我在 StackLayout 内时所期望的行为。

谁能解释这是为什么?如果我用 BoxView 替换 Image,它会很高兴地调整大小并保持在 StackLayout 的范围内。

谢谢。

4

1 回答 1

0

我通过将图像包装在网格中解决了这个问题:

<StackLayouenter code heret Orientation="Vertical">
    <Grid>        
        <Image Source="image.jpg" VerticalOptions="Fill" HorizontalOptions="Fill"/>
    </Grid>
</StackLayout>

我不知道它为什么会起作用,但我想这对你来说是 Xamarin.Forms。

于 2021-04-01T08:47:50.027 回答