c# - 将 BoxView 动态添加到网格 [Xamarin.Forms]
<p><p>我正在尝试使用 3 列和多行以网格格式添加 BoxView。我已经使用 xaml 和行为定义了网格
在 c# 文件中。应该发生的是应该为相同数量的图像创建一个 BoxView,每列 3 个图像。</p>
<p>谢谢,</p>
<p>XAML</p>
<pre><code><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>
</code></pre>
<p>C#</p>
<pre><code>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 });
}
}
}
}
</code></pre></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>当你将子元素添加到网格时,你必须指定 Row 和 Col,否则它们将被添加到 0,0。</p>
<pre><code>imageGrid.Children.Add(new BoxView() { BackgroundColor = Color.Red }, newrow, newcol);
</code></pre></p>
<p style="font-size: 20px;">关于c# - 将 BoxView 动态添加到网格 ,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/47240981/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/47240981/
</a>
</p>
页:
[1]