我有一个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
。