我是Xamarin的新手,请原谅我这是非常明显的。
我在ContentPage中添加了一个Grid。我希望网格占用整个ContentPage,我假设它是设备的完整大小。在我的情况下,我正在测试iPhone 6S模拟器。 第一行应该是网格总高度的7.58%,最后一行应该填写其余部分。我添加标签以查看最后一行底部的位置,并显示顶部的所有内容。从顶部看起来它是~7%,这意味着它是第一排的底部。
<Grid x:Name="layoutGrid" HorizontalOptions="Fill" VerticalOptions="Fill">
<Grid.RowDefinitions>
<RowDefinition Height=".0758*"/>
<!-- Logo -->
<!-- Remaining Space -->
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width=".154*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width=".154*" />
</Grid.ColumnDefinitions>
<Image Aspect="Fill" Source="{local:ImageResource App1.Resources.background.png}" Grid.ColumnSpan="3" Grid.RowSpan="11"/>
<Image Aspect="AspectFit" x:Name="settingsImage" Grid.Column="2" Grid.Row="0" Source="{local:ImageResource App1.Resources.settings-17-xxl.png}" HorizontalOptions="End"/>
<Label x:Name="lblTest" Grid.Row="1" Text="Bottom" TextColor="White" VerticalOptions="End" HorizontalOptions="Center" FontSize="18"/>
答案 0 :(得分:0)
看起来您将两个项目放在同一个空间中,而这在网格中是无法做到的。 IOW XAML中的第一个图像(看起来你想在整个网格中使用它?)没有设置行和列,但是默认为行/列0.那么你的列跨度为3,行跨度为11(?) 。你只有两行,所以没有意义。此外,您不能将第二个图像放在第0行第2列中,因为第二个图像已被第一个图像占用。您可能希望将第一个图像设置为页面背景。或使用绝对或相对布局,您可以在其中叠加项目。据我所知,网格不允许覆盖项目。您还可以将标签设置为&#34; End&#34;将它放在第1行的底部,而不是顶部。尝试使用以下XAML来查看它是否更接近您想要的内容:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:App1"
x:Class="App1.MainPage"
BackgroundImage="{local:ImageResource App1.Resources.background.png}">
<Grid x:Name="layoutGrid" HorizontalOptions="Fill" VerticalOptions="Fill">
<Grid.RowDefinitions>
<RowDefinition Height=".0758*"/>
<!-- Logo -->
<!-- Remaining Space -->
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width=".154*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width=".154*" />
</Grid.ColumnDefinitions>
<Image Aspect="AspectFit" x:Name="settingsImage" Grid.Column="2" Grid.Row="0" Source="{local:ImageResource App1.Resources.settings-17-xxl.png}" HorizontalOptions="End"/>
<Label x:Name="lblTest" Grid.Row="1" Text="Bottom" TextColor="White" VerticalOptions="Start" HorizontalOptions="Center" FontSize="18"/>
</Grid>
</ContentPage>