我很难在网格上设置文本和图片。以下是我需要做的:Xamarin表格网格布局
- 两列
- 第一列包含文本的两排,左对齐。
- 第二列包含单个图像,占据整个高度,但是右对齐。
所以它将基本上是这样的:
我已经试过两种方法。
第一种方法是创建一个2×2的网格,并且所述图像的ColumnSpan设置为2。但该图标没有被垂直居中,它仍然是在顶行英寸
第二种方法是创建1x2网格(1行2列),然后添加一个包含两个文本字符串的StackLayout到第一个子节点,并将图像添加到第二个子节点。这次图像垂直居中,但不幸的是左对齐。
任何人都可以帮忙吗?
谢谢。
代码第二种方法:
Content = new Grid
{
//Padding = new Thickness(75, 5, 25, 5),
VerticalOptions = LayoutOptions.FillAndExpand,
HorizontalOptions = LayoutOptions.StartAndExpand,
RowDefinitions =
{
new RowDefinition(),
},
ColumnDefinitions =
{
new ColumnDefinition(),
new ColumnDefinition(),
},
};
(Content as Grid).RowDefinitions[0].Height = new GridLength(1, GridUnitType.Star);
(Content as Grid).ColumnDefinitions[0].Width = new GridLength(9, GridUnitType.Star);
(Content as Grid).ColumnDefinitions[1].Width = new GridLength(1, GridUnitType.Star);
StackLayout left = new StackLayout
{
HorizontalOptions = LayoutOptions.StartAndExpand,
VerticalOptions = LayoutOptions.Center,
Orientation = StackOrientation.Vertical,
Children =
{
firstName,
lastName,
}
};
StackLayout right = new StackLayout
{
HorizontalOptions = LayoutOptions.Start,
VerticalOptions = LayoutOptions.Center,
Orientation = StackOrientation.Horizontal,
Children =
{
icon,
}
};
(Content as Grid).Children.Add(left, 0, 0);
(Content as Grid).Children.Add(right, 1, 0);
//(Content as Grid).Children[1].HorizontalOptions = LayoutOptions.End
这现在看起来是这样的:
的形象应该是在网格的最右侧。
谢谢。
个人,我会使用2x2网格并将图像的RowSpan(不列)设置为2.您应该能够调整图像对齐设置以获得所需。 – Jason
在#2示例中,“右”StackLayout具有HorizontalOptions.Start,这意味着它将左对齐。您可能希望将其填充到容器中,然后将其中的图像右对齐。或者完全摆脱StackLayout – Jason
Duh,我简直不敢相信它那么简单。谢谢你指出。您是否可以将此作为回答发布,以便我可以标记并解决问题?再次感谢。 – MrProgrammer