【发布时间】:2020-10-27 10:56:41
【问题描述】:
我需要一个遥控器应用程序上的方形按钮嵌套,经过多次尝试,创建了以下内容页面和类。
请问我怎样才能摆脱网格顶部的空间(在屏幕截图中显示为红色)?
内容页面
<StackLayout BackgroundColor="Black" VerticalOptions="StartAndExpand">
<Label x:Name="MyAwesomeLabel" FontSize="60" FontAttributes="Bold" Text="Label" TextColor="White" HorizontalTextAlignment="End" VerticalTextAlignment="Center" LineBreakMode="NoWrap" BackgroundColor="Blue" Margin="12, 12, 12, 0"/>
<Grid x:Name="MyAwesomeGrid" RowSpacing="1" ColumnSpacing="1" Padding="0, -40, 0, 0" Margin="0" HorizontalOptions="CenterAndExpand" VerticalOptions="EndAndExpand" BackgroundColor="Red">
<Grid.RowDefinitions>
<RowDefinition Height="1"/>
<RowDefinition Height="1"/>
<RowDefinition Height="1"/>
<RowDefinition Height="1"/>
<RowDefinition Height="1"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1"/>
<ColumnDefinition Width="1"/>
<ColumnDefinition Width="1"/>
<ColumnDefinition Width="1"/>
</Grid.ColumnDefinitions>
<ImageButton Grid.Row="1" Grid.Column="0" Source="A.xml"/>
<ImageButton Grid.Row="1" Grid.Column="1" Source="B.xml"/>
<ImageButton Grid.Row="1" Grid.Column="2" Source="C.xml"/>
<ImageButton Grid.Row="1" Grid.Column="3" Source="D.xml"/>
<ImageButton Grid.Row="2" Grid.Column="0" Source="E.xml"/>
<ImageButton Grid.Row="2" Grid.Column="1" Source="F.xml"/>
<ImageButton Grid.Row="2" Grid.Column="2" Source="G.xml"/>
<ImageButton Grid.Row="2" Grid.Column="3" Source="H.xml"/>
<ImageButton Grid.Row="3" Grid.Column="0" Source="I.xml"/>
<ImageButton Grid.Row="3" Grid.Column="1" Source="J.xml"/>
<ImageButton Grid.Row="3" Grid.Column="2" Source="K.xml"/>
<ImageButton Grid.Row="3" Grid.Column="3" Source="L.xml"/>
<ImageButton Grid.Row="4" Grid.Column="0" Source="M.xml"/>
<ImageButton Grid.Row="4" Grid.Column="1" Source="N.xml"/>
<ImageButton Grid.Row="4" Grid.Column="2" Source="O.xml"/>
<ImageButton Grid.Row="4" Grid.Column="3" Source="P.xml"/>
<ImageButton Grid.Row="5" Grid.Column="0" Source="Q.xml"/>
<ImageButton Grid.Row="5" Grid.Column="1" Source="R.xml"/>
<ImageButton Grid.Row="5" Grid.Column="2" Source="S.xml"/>
<ImageButton Grid.Row="5" Grid.Column="3" Source="T.xml"/>
</Grid>
</StackLayout>
页面类
public MyAwesomeApp()
{
InitializeComponent();
double size = DeviceDisplay.MainDisplayInfo.Width / 12;
foreach(ColumnDefinition col in buttons.ColumnDefinitions)
{
col.Width = size;
}
foreach(RowDefinition row in buttons.RowDefinitions)
{
row.Height = size;
}
}
结果
网格背景颜色为红色,因此空间绝对是网格的一部分。
【问题讨论】:
-
将 StackLayout 上的间距设置为 0
-
您还将 VerticalOptions 设置为 EndAndExpand
-
谢谢@Jason。我这样做了:
但我仍然有一个很大的红色空间。 -
您的网格不够大,无法填充空白空间,因此必须使用一些东西来填充它。您可以尝试将其中一个网格行设置为自动。
标签: android xaml xamarin.forms