我正在尝试在Xamarin窗体中创建一个网格,其中有两列,每个列占据半个屏幕。我按如下方式实现了我的XAML
<Grid VerticalOptions="End" HorizontalOptions="CenterAndExpand" BackgroundColor="#3F4045" Margin="0,0,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="5*"/>
<ColumnDefinition Width="5*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Rectangle Grid.Row="0" Grid.ColumnSpan="2" VerticalOptions="Center" HorizontalOptions="CenterAndExpand" BackgroundColor="#3F4045"/>
<Grid Grid.Row="1">
<Grid Grid.Column="0" HorizontalOptions="Start">
<Frame BackgroundColor="#FCFCFC" CornerRadius="0" Margin="0" Padding="0">
<Entry TextColor="#3F4045" BackgroundColor="#FCFCFC" VerticalOptions="CenterAndExpand" HorizontalOptions="CenterAndExpand" PlaceholderColor="#3F4045" Placeholder="Last Name, First Name"/>
</Frame>
</Grid>
<Grid Grid.Column="1" HorizontalOptions="Start">
<Frame BackgroundColor="#FCFCFC" CornerRadius="0" Margin="0" Padding="0">
<Button TextColor="#3F4045" BackgroundColor="#FCFCFC" VerticalOptions="CenterAndExpand" HorizontalOptions="CenterAndExpand" Text="Upload Records"/>
</Frame>
</Grid>
</Grid>
</Grid>
这两个帧应该各占第二行的一半,它们之间有少量的空间。然而,当应用程序加载时,它们各自占据了第一列的一半,它们之间有少量的空间。我尝试将第二列的宽度从5*改为8*,正如我所预期的那样,两个框架都缩小了,因此它们占据了屏幕的5/13,这意味着它们实际上都在第一列中。下面是问题的图片和我用宽度5*和8*做的测试,以供参考:
在框架或网格标签中设置水平/垂直选项时,我是否遗漏了什么?谢谢你的帮助!
发布于 2021-07-20 01:57:06
解决方案是从网格标签中删除框架,并直接使它们成为父网格的子级,使用Grid.Row和Grid.Column将它们分配到适当的位置。
<Grid VerticalOptions="End" HorizontalOptions="CenterAndExpand" BackgroundColor="#3F4045" Margin="0,0,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="5*"/>
<ColumnDefinition Width="5*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Rectangle Grid.Row="0" Grid.ColumnSpan="2" VerticalOptions="Center" HorizontalOptions="CenterAndExpand" BackgroundColor="#3F4045"/>
<Frame Grid.Row="1" Grid.Column="0" BackgroundColor="#FCFCFC" CornerRadius="0" Margin="0" Padding="0">
<Entry TextColor="#3F4045" BackgroundColor="#FCFCFC" VerticalOptions="CenterAndExpand" HorizontalOptions="CenterAndExpand" PlaceholderColor="#3F4045" Placeholder="Last Name, First Name"/>
</Frame>
<Frame Grid.Row="1" Grid.Column="1" BackgroundColor="#FCFCFC" CornerRadius="0" Margin="0" Padding="0">
<Button TextColor="#3F4045" BackgroundColor="#FCFCFC" VerticalOptions="CenterAndExpand" HorizontalOptions="CenterAndExpand" Text="Upload Records"/>
</Frame>
</Grid>
以下是更新后的代码。
https://stackoverflow.com/questions/68444760
复制相似问题