为什么我的网格有一些内部间距?
Why does my Grid have some internal spacing?
我正在使用 Xamarin.Forms 5.0.0 构建我的第一个 iPhone 应用。
我在 CollectionView 中使用网格。但是即使我将 ColumnSpacing 和 RowSpacing 设置为 0,也有一些内部间距。这都在我在 Shell.
中使用的 ContentPage 中
这是我的 XAML:
<CollectionView ItemsSource="{Binding Users}" BackgroundColor="Red">
<CollectionView.ItemsLayout>
<LinearItemsLayout Orientation="Vertical"/>
</CollectionView.ItemsLayout>
<CollectionView.ItemTemplate>
<DataTemplate x:DataType="models:UserModel">
<Grid BackgroundColor="Green" ColumnSpacing="0" RowSpacing="0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<BoxView Grid.Row="0" Grid.Column="0" BackgroundColor="LightBlue"/>
<BoxView Grid.Row="0" Grid.Column="1" BackgroundColor="LightBlue"/>
<BoxView Grid.Row="1" Grid.Column="0" BackgroundColor="LightBlue"/>
<BoxView Grid.Row="1" Grid.Column="1" BackgroundColor="LightBlue"/>
<Label Grid.Row="0" Grid.Column="0" HorizontalTextAlignment="Center" VerticalTextAlignment="Center" Text="1" TextColor="Black"/>
<Label Grid.Row="0" Grid.Column="1" HorizontalTextAlignment="Center" VerticalTextAlignment="Center" Text="2" TextColor="Black"/>
<Label Grid.Row="1" Grid.Column="0" HorizontalTextAlignment="Center" VerticalTextAlignment="Center" Text="3" TextColor="Black"/>
<Label Grid.Row="1" Grid.Column="1" HorizontalTextAlignment="Center" VerticalTextAlignment="Center" Text="4" TextColor="Black"/>
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
如您所见,间距为绿色,表示集合项之间没有 space,但在网格内部。
中间还有一条小线,我只在我的设备上看到,在模拟器中看不到。有没有一种工具可以让我详细分析 XAML 以查看它的来源?对于 Web 开发,我可以简单地使用 DEV 工具中的检查元素。 Xamarin XAML 有类似的东西吗?
这是我 iPhone 的结果:
这是模拟器中的结果:
根据@ToolmakerSteve 的建议。
我玩了一些负边距和填充,这对我有用:
<Grid ColumnSpacing="0" RowSpacing="0" Padding="-1, -1, 0, 0">
我仍然想知道为什么需要这个。必须有填充为 1,1,0,0 或默认添加它的东西。但现在我的问题已经解决了。
我正在使用 Xamarin.Forms 5.0.0 构建我的第一个 iPhone 应用。
我在 CollectionView 中使用网格。但是即使我将 ColumnSpacing 和 RowSpacing 设置为 0,也有一些内部间距。这都在我在 Shell.
中使用的 ContentPage 中这是我的 XAML:
<CollectionView ItemsSource="{Binding Users}" BackgroundColor="Red">
<CollectionView.ItemsLayout>
<LinearItemsLayout Orientation="Vertical"/>
</CollectionView.ItemsLayout>
<CollectionView.ItemTemplate>
<DataTemplate x:DataType="models:UserModel">
<Grid BackgroundColor="Green" ColumnSpacing="0" RowSpacing="0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<BoxView Grid.Row="0" Grid.Column="0" BackgroundColor="LightBlue"/>
<BoxView Grid.Row="0" Grid.Column="1" BackgroundColor="LightBlue"/>
<BoxView Grid.Row="1" Grid.Column="0" BackgroundColor="LightBlue"/>
<BoxView Grid.Row="1" Grid.Column="1" BackgroundColor="LightBlue"/>
<Label Grid.Row="0" Grid.Column="0" HorizontalTextAlignment="Center" VerticalTextAlignment="Center" Text="1" TextColor="Black"/>
<Label Grid.Row="0" Grid.Column="1" HorizontalTextAlignment="Center" VerticalTextAlignment="Center" Text="2" TextColor="Black"/>
<Label Grid.Row="1" Grid.Column="0" HorizontalTextAlignment="Center" VerticalTextAlignment="Center" Text="3" TextColor="Black"/>
<Label Grid.Row="1" Grid.Column="1" HorizontalTextAlignment="Center" VerticalTextAlignment="Center" Text="4" TextColor="Black"/>
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
如您所见,间距为绿色,表示集合项之间没有 space,但在网格内部。 中间还有一条小线,我只在我的设备上看到,在模拟器中看不到。有没有一种工具可以让我详细分析 XAML 以查看它的来源?对于 Web 开发,我可以简单地使用 DEV 工具中的检查元素。 Xamarin XAML 有类似的东西吗?
这是我 iPhone 的结果:
这是模拟器中的结果:
根据@ToolmakerSteve 的建议。
我玩了一些负边距和填充,这对我有用:
<Grid ColumnSpacing="0" RowSpacing="0" Padding="-1, -1, 0, 0">
我仍然想知道为什么需要这个。必须有填充为 1,1,0,0 或默认添加它的东西。但现在我的问题已经解决了。