gpt4 book ai didi

c# - 将 BoxView 动态添加到网格 [Xamarin.Forms]

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:22:03 24 4
gpt4 key购买 nike

我正在尝试使用 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 });
}
}
}
}

最佳答案

当你向网格中添加子项时,你必须指定行和列,否则它们将添加到 0,0。

  imageGrid.Children.Add(new BoxView() { BackgroundColor = Color.Red }, newrow, newcol);

关于c# - 将 BoxView 动态添加到网格 [Xamarin.Forms],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47240981/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com