MAUI - 基于代码的视图/布局不使用全宽

问题描述 投票:0回答:1

我正在学习毛伊岛及其控制方式。在我要进行的小练习应用程序中,我扩展了网格,并能够将其添加到网格中,以在主屏幕上显示小的垂直区域。

但是我正在考虑添加一些颜色和图形,但我似乎无法让网格本身占据已分配的整个区域。

enter image description here

我的“翅膀”代码如下所示。每个翅膀都在一个网格区域中,即 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 添加这些自定义控件的清晰度,但无法弄清楚为什么灰色背景没有占据整个“翼”区域

mobile maui
1个回答
0
投票

当您使用

GridLength.Auto
时,它只占用所需的空间,并且不会自行扩展,如果这是您想要的,您应该使用

var length = new GridLength(1, GridUnitType.Star);

此处 1 表示在多个视图具有

Star
GridLength
的情况下应扩展的比例。

© www.soinside.com 2019 - 2024. All rights reserved.