我正在学习毛伊岛及其控制方式。在我要进行的小练习应用程序中,我扩展了网格,并能够将其添加到网格中,以在主屏幕上显示小的垂直区域。
但是我正在考虑添加一些颜色和图形,但我似乎无法让网格本身占据已分配的整个区域。
我的“翅膀”代码如下所示。每个翅膀都在一个网格区域中,即 1 行和屏幕的 15%。
public SideLayout(SideStackAlignment side)
{
_side = side;
Setup();
}
private void Setup()
{
RowDefinitions = new RowDefinitionCollection(new []
{
new RowDefinition(GridLength.Auto),
new RowDefinition(GridLength.Auto)
});
ColumnDefinitions = new ColumnDefinitionCollection(new[]
{
new ColumnDefinition(GridLength.Auto)
});
Rotation = _side == SideStackAlignment.Left ? 270 : 90;
HorizontalOptions = _side == SideStackAlignment.Left ? LayoutOptions.Start : LayoutOptions.End;
VerticalOptions = LayoutOptions.Center;
BackgroundColor = Color.FromArgb("#cccccc");
_title = new Label
{
HorizontalOptions = LayoutOptions.Center,
TextTransform = TextTransform.Uppercase,
FontFamily = "OpenSansRegular",
FontSize = 18,
TextColor = AppColors.TextColor
};
this.Add(_title, 0,0);
_detail = new Label
{
HorizontalOptions = LayoutOptions.Center,
TextTransform = TextTransform.Uppercase,
FontFamily = "OpenSansRegular",
FontSize = 30,
TextColor = AppColors.TextColor
};
this.Add(_detail, 0,1);
}
如有任何帮助,我们将不胜感激。由于未来的功能,我喜欢通过代码而不是 XAML 添加这些自定义控件的清晰度,但无法弄清楚为什么灰色背景没有占据整个“翼”区域
当您使用
GridLength.Auto
时,它只占用所需的空间,并且不会自行扩展,如果这是您想要的,您应该使用
var length = new GridLength(1, GridUnitType.Star);
此处 1 表示在多个视图具有
Star
为 GridLength
的情况下应扩展的比例。