Layout Xamarin.表单网格布局

Layout Xamarin.表单网格布局,layout,xamarin,grid,xamarin.forms,Layout,Xamarin,Grid,Xamarin.forms,有人能解释一下Xamarin.Forms中的GridLayout引用吗 使用FormsGallery上的示例,也可以在这里看到(也有一个图像) 我试图解决这个问题,但我的反复尝试并不是很成功,只是非常耗时 查看网格的第一行,代码如下 grid.Children.Add(new Label { Text = "Grid", Font = Font.BoldSystemFontOfSize(50), HorizontalOptions = Layout

有人能解释一下Xamarin.Forms中的GridLayout引用吗

使用FormsGallery上的示例,也可以在这里看到(也有一个图像) 我试图解决这个问题,但我的反复尝试并不是很成功,只是非常耗时

查看网格的第一行,代码如下

grid.Children.Add(new Label
   {
       Text = "Grid",
       Font = Font.BoldSystemFontOfSize(50),
       HorizontalOptions = LayoutOptions.Center
  }, 0, 3, 0, 1);
在我看来,第一个0表示X位置,第3个表示列跨度,第二个0表示y位置,第1个表示行跨度。但将其用作引用并尝试添加其他行和列是行不通的。如果他们的示例中包含一些注释,那就太好了,但既然他们没有,有人能告诉我GridLayout引用是如何工作的吗

干杯

这就像添加(视图、左整数、右整数、上整数、下整数)


在这里

我想如果您使用XAML创建网格,您会发现它更容易理解。在这种情况下,您有行和列,并且设置非常简单

            <Grid>
              <Grid.RowDefinitions>
                <RowDefinition Height="3*" />
                <RowDefinition Height="4*" />
              </Grid.RowDefinitions>

            <Grid>
                <Grid.ColumnDefinitions>
                      <ColumnDefinition Width="*" />
                      <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>
          </Grid>

这将定义一个具有两行的栅格。第一排的高度是第二排的3/4。它还有两个相等的列

现在可以添加到网格中的单元格,例如

<Label Text="Hi!" Grid.Row = 1  Grid.Column = 0 />

这将把标签放在第二行第一列


这与Silverlight和WPF中的工作原理完全相同。

事实上,我发现Miha Markic的答案有点误导,不是因为他给出的答案不正确,而是因为Xamarin对这些论点的处理从名字上看不清楚

Add(View view, int left, int right, int top, int bottom)

left = column,
right = used to work out column span ie. right - left
top = row,
bottom = used to work out row span ie. bottom - top
这意味着,如果您希望第二列中的项目跨越两列,则必须执行以下操作:

Add(view, 1, 3, 0, 1)
这有点奇怪,因为为了跨越两列,需要输入3


(我最初在上找到答案)

谢谢你的回答,杰西。因为我对Xamarin(包括C#)的所有东西都很陌生,所以我不知道Silverlight或WPF。我发现大多数教程和示例都是针对有经验的人编写的,而对于没有经验的人来说就不多了。例如,如果FormsGallery中包含帮助像我这样的人的评论,那就太好了。一旦我掌握了这一切,我会给Xaml一个机会。干杯这是一个伟大的观点。很快查尔斯·佩佐尔德(Charles Petzold)为Xamarin写的关于XAML的书将出版,这将是一个很大的帮助。我有一门关于Pluralsight的课程,叫做C#从头开始,你可能想去看看。谢谢Jesse,我一定会去看看(这项作业一完成!!)谢谢,这正是我需要的。我确实试过搜索,但我想我不应该在真的很累的时候这样做!!!!