Xamarin表单中的RowSpan和ColumnSpan
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Xamarin表单中的RowSpan和ColumnSpan相关的知识,希望对你有一定的参考价值。
有没有人可以向我解释Xamarin表格中的rowspan和columnspan如何?右,左,上,下参数有点令人困惑。
让我们将这段代码用于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在列和行方面的含义是什么?这适用于具有四行三列的网格。
答案
这个答案是由Till Balandat从this answer at Xamarin's forums复制并粘贴的,但在这里很有用,因为Xamarin的文档似乎没有解释Add方法的附加参数。
Add的重载需要4个参数,这有点令人困惑,但最后让你定义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);
}
}
以上是关于Xamarin表单中的RowSpan和ColumnSpan的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin:用于 Android 和 Windows UWP 的 Xamarin 表单中的分组列表的垂直字母索引(跳转列表)
Xamarin 表单中的 UWP FormsComboBox 和 FormsTextBox 样式
如何更改 Xamarin 表单中的 DatePicker Ok 和 Cancel 按钮文本?