Xamarin Forms Collection View Extra Padding
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Xamarin Forms Collection View Extra Padding相关的知识,希望对你有一定的参考价值。
我正在尝试Xamarin Forms集合视图。列表中的每个项目似乎都有一些额外的填充。我看不到如何删除它。
这里是我的看法。该视图具有浅绿色背景。模板中的2列网格的标签设置为红色。
这是XAML / C#
<CollectionView
x:Name="BodyView"
SelectionMode="Single"
HorizontalOptions="FillAndExpand"
BackgroundColor="Aqua"
Grid.Row="2" />
BodyView.ItemTemplate = new DataTemplate(() =>
{
var converter = (IValueConverter) Application.Current.Resources["GridCellConverter"];
Grid grid = new Grid( );
grid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto });
grid.Margin = new Thickness(-20, 0, 0, 0);
foreach (var col in _gridColumns)
{
grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) });
var content = new Label();
content.Style = (Style)Application.Current.Resources["GridCellLabel"];
content.BackgroundColor = Color.Red;
Binding binding = new Binding("CellData", BindingMode.OneWay, converter, col.PageFieldId);
content.SetBinding(Label.TextProperty, binding);
grid.Children.Add(content, grid.ColumnDefinitions.Count - 1, 0);
}
return grid;
});
我将我能找到的所有东西都归零。
我尝试在网格上设置负边距,但不会向左移动。
是否有任何方法可以删除填充?
答案
您正在寻找的是网格的行和列间距!
Grid grid = new Grid( ){ ColumnSpacing= "0", RowSpacing="0" };
此外,这需要删除:
grid.Margin = new Thickness(-20, 0, 0, 0);
还因为您正在使用CollectionView
,所以为什么不在DataTemplate中使用单个项放入GridItemsLayout
?
以上是关于Xamarin Forms Collection View Extra Padding的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin.Forms:Forms.Context 已过时
Xamarin.Forms 和 Xamarin Native 有啥区别? [关闭]
如何使用 Xamarin.Forms.Maps(无 Xamarin.Forms.GoogleMaps)在地图中应用样式或更改颜色
Xamarin Forms Prism:prism ResourceDictionary 中已存在具有键“Xamarin.Forms.NavigationPage”的资源
Xamarin.Forms.Forms.Init(e) Onlaunched 中的 FileNotFoundExeception