Android 如何删除此Xamarin网格布局顶部的空间?

Android 如何删除此Xamarin网格布局顶部的空间?,android,xaml,xamarin.forms,Android,Xaml,Xamarin.forms,我有一个远程控制应用程序上的方形按钮嵌套的要求,经过几次尝试,创建了以下内容页和类 我怎样才能去掉网格顶部的空间(屏幕截图上以红色显示) 内容页 <StackLayout BackgroundColor="Black" VerticalOptions="StartAndExpand"> <Label x:Name="MyAwesomeLabel" FontSize="60"

我有一个远程控制应用程序上的方形按钮嵌套的要求,经过几次尝试,创建了以下内容页和类

我怎样才能去掉网格顶部的空间(屏幕截图上以红色显示)

内容页

     <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>
结果


网格背景颜色为红色,因此空间肯定是网格的一部分。

您可以使用视图到视图绑定设置图像按钮的大小。这样您就不需要再在代码隐藏中设置它了

<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="1"  HorizontalOptions="CenterAndExpand" VerticalOptions="FillAndExpand" BackgroundColor="Red">

            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
            </Grid.RowDefinitions>

            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>

            <ImageButton x:Name="btn1" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Row="0" Grid.Column="0" BackgroundColor="LightBlue"/>
            <ImageButton Grid.Row="0" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="1" BackgroundColor="LightBlue"/>
            <ImageButton Grid.Row="0" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="2" BackgroundColor="LightBlue"/>
            <ImageButton Grid.Row="0" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="3" BackgroundColor="LightBlue"/>

            <ImageButton Grid.Row="1" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="0" BackgroundColor="LightBlue"/>
            <ImageButton Grid.Row="1" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="1" BackgroundColor="LightBlue"/>
            <ImageButton Grid.Row="1" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="2" BackgroundColor="LightBlue"/>
            <ImageButton Grid.Row="1" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="3" BackgroundColor="LightBlue"/>

            <ImageButton Grid.Row="2" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="0" BackgroundColor="LightBlue"/>
            <ImageButton Grid.Row="2" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="1" BackgroundColor="LightBlue"/>
            <ImageButton Grid.Row="2" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="2" BackgroundColor="LightBlue"/>
            <ImageButton Grid.Row="2" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="3" BackgroundColor="LightBlue"/>

            <ImageButton Grid.Row="3" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="0" BackgroundColor="LightBlue"/>
            <ImageButton Grid.Row="3" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="1" BackgroundColor="LightBlue"/>
            <ImageButton Grid.Row="3" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="2" BackgroundColor="LightBlue"/>
            <ImageButton Grid.Row="3" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="3" BackgroundColor="LightBlue"/>

            <ImageButton Grid.Row="4" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="0" BackgroundColor="LightBlue"/>
            <ImageButton Grid.Row="4" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="1" BackgroundColor="LightBlue"/>
            <ImageButton Grid.Row="4" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="2" BackgroundColor="LightBlue"/>
            <ImageButton Grid.Row="4" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="3" BackgroundColor="LightBlue"/>
        </Grid>
    </StackLayout>

这是你的罪魁祸首

您从Row=“1”开始,而不是Row=“0”


顶部的空间位于第0行,网格自动创建第6行,现在您的页面有6行而不是5行

将1更改为0,将2更改为1,依此类推。。您将获得所需的结果并删除不再需要的负片填充

<ImageButton Grid.Row="0" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="1" BackgroundColor="LightBlue"/>
...
<ImageButton Grid.Row="1" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="1" BackgroundColor="LightBlue"/>
...
<ImageButton Grid.Row="2" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="1" BackgroundColor="LightBlue"/>
...
<ImageButton Grid.Row="3" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="1" BackgroundColor="LightBlue"/>
...
<ImageButton Grid.Row="4" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="1" BackgroundColor="LightBlue"/>

...
...
...
...

将StackLayout上的间距设置为0您还可以将垂直选项设置为EndAndExpandTanks@Jason。我这样做了:但我仍然有一个很大的红色空间。你的网格不够大,无法填充空白,所以必须有东西来填充它。您可以尝试将其中一个网格行设置为“自动”。但现在,标签需要使用后,空间低于所有剩余高度调整必须删除所有内容并将网格保留在整个页面上,顶部将有该空间,为什么会这样?您希望达到哪种效果?请参阅我的答案@lucasShubham,谢谢。第0行中曾经有另一个标签。这完美地回答了我的问题(尽管现在应用程序并没有填满整个屏幕)。我拒绝了你的编辑,因为我觉得我应该显示我尝试过的实际代码。@sanepete应用程序填充问题就此发布另一个问题,我将尝试回答它,我将首先尝试自己修复它。谢谢你。
<ImageButton Grid.Row="1" Grid.Column="0" Source="A.xml"/>
<ImageButton Grid.Row="0" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="1" BackgroundColor="LightBlue"/>
...
<ImageButton Grid.Row="1" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="1" BackgroundColor="LightBlue"/>
...
<ImageButton Grid.Row="2" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="1" BackgroundColor="LightBlue"/>
...
<ImageButton Grid.Row="3" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="1" BackgroundColor="LightBlue"/>
...
<ImageButton Grid.Row="4" HeightRequest="{Binding Width, Source={x:Reference btn1}}" Grid.Column="1" BackgroundColor="LightBlue"/>