我正在尝试使用 3 列和多行以网格格式添加 BoxView。我已经使用 xaml 和行为定义了网格
在 c# 文件中。应该发生的是应该为相同数量的图像创建一个 BoxView,每列 3 个图像。
谢谢,
XAML
<Grid RowSpacing="0" x:Name="scrollBarGrid">
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!--Where the search bar will go-->
<BoxView BackgroundColor="Aqua" Grid.Row="0"/>
<SearchBar ></SearchBar>
<!--Where the images will go-->
<BoxView BackgroundColor="Gray" Grid.Row="1"/>
<Grid x:Name="imageGrid" RowSpacing="0" Grid.Row="1">
</Grid>
</Grid>
C#
public MainPage()
{
InitializeComponent();
int colMaximum = 3;
int numberOfImages = 15;
//To add three columns
for (int i = 0; i < colMaximum; i++)
{
imageGrid.ColumnDefinitions.Add(new ColumnDefinition()
{
Width = new GridLength(120, GridUnitType.Absolute)
});
}
//To add an array of rows
imageGrid.RowDefinitions = new RowDefinitionCollection();
for (int myCount = 0; myCount <= numberOfImages / colMaximum; myCount++)
{
imageGrid.RowDefinitions.Add(new RowDefinition()
{
Height = new GridLength(120, GridUnitType.Absolute)
});
//To add a new box view for each
for (int newcol = 0; newcol <= colMaximum; newcol++)
{
for (int newrow = 0; newrow <= numberOfImages / colMaximum; newrow++)
{
imageGrid.Children.Add(new BoxView() { BackgroundColor = Color.Red });
}
}
}
}
Best Answer-推荐答案 strong>
当你将子元素添加到网格时,你必须指定 Row 和 Col,否则它们将被添加到 0,0。
imageGrid.Children.Add(new BoxView() { BackgroundColor = Color.Red }, newrow, newcol);
关于c# - 将 BoxView 动态添加到网格 [Xamarin.Forms],我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/47240981/
|