gpt4 book ai didi

c# - Xamarin.Forms 中的 RowSpan 和 ColumnSpan

转载 作者:太空狗 更新时间:2023-10-29 17:35:47 24 4
gpt4 key购买 nike

有没有人可以向我解释 RowSpanColumnSpanXamarin.Forms 中的工作原理?
参数 right、left、top 和 bottom 有点困惑。

让我们将此代码片段用于 RowSpan:

grid.Children.Add(new Label
{
Text = "Span two rows (or more if you want)",
TextColor = Color.Yellow,
BackgroundColor = Color.Navy,
XAlign = TextAlignment.Center,
YAlign = TextAlignment.Center
}, 2, 3, 1, 3);

数字 2、3、1、3 在此处的列和行中表示什么?
这是用于具有四行和三列的网格。

最佳答案

这个答案是从this answer at Xamarin's forums (archived)复制粘贴的由 Till Balandat 编写,但在这里很有用,因为 Xamarin 的文档似乎没有解释 Add 方法的附加参数。

带有 4 个参数的 Add 的重载有点令人困惑,但最后让您定义 Row、RowSpan、Column 和 Columnspan:所以上面的例子

var label = new Label { Text = "Row 1" };
myGrid.Children.Add(label,0,0);
Grid.SetColumnSpan(label,2);

转换为:

var label = new Label { Text = "Row 1" };
myGrid.Children.Add(label, 0, 2, 0, 1);

这是 Xamarin 内部所做的:

public void Add(View view, int left, int right, int top, int bottom)
{
//..exceptionhandling removed
Grid.SetRow((BindableObject) view, top);
Grid.SetRowSpan((BindableObject) view, bottom - top);
Grid.SetColumn((BindableObject) view, left);
Grid.SetColumnSpan((BindableObject) view, right - left);
this.Add(view);
}

所以你可能更喜欢这样的东西:

public static class GridExtension
{
public static void AddChild(this Grid grid, View view, int row, int column, int rowspan = 1, int columnspan = 1)
{
if (row < 0)
throw new ArgumentOutOfRangeException("row");
if (column < 0)
throw new ArgumentOutOfRangeException("column");
if (rowspan <= 0)
throw new ArgumentOutOfRangeException("rowspan");
if (columnspan <= 0)
throw new ArgumentOutOfRangeException("columnspan");
if (view == null)
throw new ArgumentNullException("view");
Grid.SetRow((BindableObject)view, row);
Grid.SetRowSpan((BindableObject) view, rowspan);
Grid.SetColumn((BindableObject) view, column);
Grid.SetColumnSpan((BindableObject) view, columnspan);
grid.Children.Add(view);
}
}

关于c# - Xamarin.Forms 中的 RowSpan 和 ColumnSpan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28854279/

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