如何在 Xamarin 窗体中将框视图或框架高度设置为等于屏幕高度?



我有一个BoxView我需要将其高度和宽度设置为等于屏幕尺寸。我正在使用StackLayout并设置HeightRequest="500" WidthRequest=400.我希望BoxView填满屏幕空间。怎么能做到呢?

使用Grid并设置<RowDefinition Height="*" />

<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<BoxView Grid.Row="0" BackgroundColor="Black" />
</Grid>

如果您使用的是嵌套Grid则在最外层Grid中设置<RowDefinition Height="*" />。当您将BoxView的高度和宽度设置为与屏幕尺寸相同时,很明显BoxView将占用所有屏幕空间。因此,最外层Grid将只有 1 行。现在,如果您想在同一页面上显示其他UI元素,则必须隐藏覆盖UI的BoxView。因此,最外层Grid将包含 1 行,用于显示BoxView或其他 UI 元素。就像这样:

<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<BoxView Grid.Row="0" BackgroundColor="Black" IsVisible="True"/>
<StackLayout Grid.Row="0" IsVisible="False">
<Label Text="Hello"/>
</StackLayout>
</Grid>

请注意,您还可以使用嵌套Grid而不是StackLayout并根据自己的选择组织元素。

如果您想像卡片一样在BoxView中添加元素,请改用Frame

最新更新