Xamarin.Forms 中的布局背景图像

Ale*_*kov 3 xaml android xamarin xamarin.forms

我需要具有固定高度(例如 200)和背景图像的AspectFill块,该块应该是该块并且该块StackLayout底部的高度未知。

我试图用RelativeLayout,并把ImageStackLayout它。图片放置完美,但我不知道如何放置StackLayout在底部。

此布局包含两个Labels,因此我无法对其进行硬编码HeightConstraitYConstrait保持不变,因为它的文本在不同平台和屏幕尺寸上可能具有不同的高度(或者,这可能是错误的?)

我怎样才能做到这一点?

在此处输入图片说明

App*_*ack 5

我已经习惯了相对布局方法的替代方法:

这基本上使用彼此重叠并填充可用空间的图像和堆栈布局。然后内部堆栈布局能够从末尾扩展。如果您想创建一个“最大”量以向上扩展(例如最大 50% 的图像),您可以将外部布局更改为“layoutBounds 1,1,1,.5”

下面的代码使用背景颜色,因此如果复制,您可以轻松看到它。有很多修改选项,例如使用背景图像和堆栈布局以外的项目,例如框架。

<AbsoluteLayout HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
    <Image BackgroundColor="Red" AbsoluteLayout.LayoutBounds="1,1,1,1" AbsoluteLayout.LayoutFlags="All" Aspect="AspectFill"></Image>
    <StackLayout AbsoluteLayout.LayoutBounds="1,1,1,1" AbsoluteLayout.LayoutFlags="All" BackgroundColor="Transparent">
        <StackLayout BackgroundColor="Blue" HorizontalOptions="FillAndExpand" VerticalOptions="EndAndExpand" Orientation="Vertical">
            <Label Text="Label 1"></Label>
            <Label Text="Label 2"></Label>
        </StackLayout>
    </StackLayout>
</AbsoluteLayout>
Run Code Online (Sandbox Code Playgroud)