OStack程序员社区-中国程序员成长平台

标题: c# - 将 BoxView 动态添加到网格 [Xamarin.Forms] [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 03:16
标题: c# - 将 BoxView 动态添加到网格 [Xamarin.Forms]

我正在尝试使用 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-推荐答案


当你将子元素添加到网格时,你必须指定 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/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4