Xamarin.forms 表单网格布局

Xamarin.forms 表单网格布局,xamarin.forms,Xamarin.forms,我是Xamarin.Forms应用程序的初学者。我正在努力解决GridLayout。 这就是我想要解决的问题: 如何在网格布局中写下这一点,我错在哪里?我已经工作了一整天,尝试新的代码组合。但似乎没有任何帮助。这是我的密码: grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Auto) }); grid.ColumnDefinitions.Add(new Column

我是Xamarin.Forms应用程序的初学者。我正在努力解决
GridLayout
。 这就是我想要解决的问题:

如何在网格布局中写下这一点,我错在哪里?我已经工作了一整天,尝试新的代码组合。但似乎没有任何帮助。这是我的密码:

grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Auto) });
grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Auto) });
grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Auto) });


grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Auto) });
grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) });
grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Auto) });

grid.Children.Add(itemName, 1, 0);
grid.Children.Add(delete, 2, 2);


Grid.SetRowSpan(itemName, 3);
Grid.SetColumnSpan(delete, 3);

我的理解告诉我,您试图添加一些项目,每个项目旁边都有一个删除按钮,每次都在右侧对齐,因此我将如何设计它,如下所示:

XAML

  <Grid>
    <Grid.ColumnDefinitions>
     <ColumnDefinition Width="*" />
     <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>
    <Label Grid.Column="0" />
    <Image Grid.Column="1" />
  </Grid>

然后使用或形成多个列表项


Goodluck如果您有任何疑问,请随时返回

网格
是设置固定行数或列数布局的好方法。 如果您正在寻找随着使用的项目数量或您的UI要求而增加的布局


使用Xaml而不是cs进行布局,这样可以节省大量时间,并且更易于阅读。

您只需要一行定义和两列定义。如果要显示相同对象的列表,建议使用或

如果您的列表很小,并且希望使其更轻,我建议您使用可绑定布局

您还可以使用
StackLayout
并将其
Orientation
属性设置为水平,以获得相同的结果

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>

    <Label Grid.Column="0" Text="YourText" LineBreakMode="WordWrap" />
    <Image Grid.Column="1" />
  </Grid>

注意:您可以使用标签的
LineBreakMode
属性启用多行文字

是的,但我正试图从背后的代码来做。还有,你的意思是我要为这个布局安排一行吗?有些大行项目不适合我,我没有使用任何ListView,只使用gridlayout。还有什么需要帮忙的吗?很乐意帮忙,如果您有疑问,请及时回复我!必须使用cs来完成,因为行项目是从数据库中获取的。如果您正在获取数据并且不知道项目数,请使用StackLayout或ListView。使用动态行的网格是可能的,但不是更好的方法。
var itemName = new Label() { Text="YourText", LineBreakMode = LineBreakMode.WordWrap };
var delete = new Image() { Source="YourImageSource" };

grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) });
grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Auto) });

grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Auto) });

grid.Children.Add(itemName, 0, 0);
grid.Children.Add(delete, 1, 0);