.NET Maui Horizo​​ntalStackLayout 展开以填充剩余窗口

Sar*_*lby 6 .net xaml maui

我正在尝试设计一个界面,其中左侧有一个窗格,另一个窗格可以扩展以适应剩余空间。我尝试使用 执行此操作HorizontalStackLayout,但无论我做什么,如果不设置特定的 ,我都无法显示第二个窗格WidthRequest。这是我想要的外观的演示:

在此输入图像描述

这就是我正在尝试的,但选项组合似乎不起作用:

<HorizontalStackLayout HorizontalOptions="FillAndExpand">
    <BoxView BackgroundColor="Green" HorizontalOptions="Start" WidthRequest="200"></BoxView>
    <BoxView BackgroundColor="Blue" HorizontalOptions="FillAndExpand"></BoxView>
</HorizontalStackLayout> 
Run Code Online (Sandbox Code Playgroud)

这就是我在毛伊岛没有设置明确宽度时所得到的一切:在此输入图像描述

我尝试过“开始”、“开始并展开”、“填充并展开”,但没有任何效果。我究竟做错了什么?

Sar*_*lby 7

看起来我能够通过使用 Maui 来实现我的目标Grid这里似乎有讨论,声明如下:

通过这个拉取请求,我提出以下建议:

  1. “AndExpand”选项不会进入 MAUI Core。
  2. 控件中的“AndExpand”选项将被标记为“已过时”
  3. StackLayout 的 Controls 实现暂时将支持“AndExpand”选项。我们将来可能会选择删除该功能。
  4. 任何未来版本的核心或控件中都不会添加新形式的“AndExpand”选项。

此拉取请求将控件中的所有“AndExpand”LayoutOptions 标记为已过时。保留当前用法并禁用警告。

该拉取请求还向新的 StackLayout 添加了“AndExpand”遗留功能。当新的 StackLayout 检测到“AndExpand”的使用时,它将进入一个单独的模式,按预期布局子视图。VerticalStackLayout 和 Horizo​​ntalStackLayout 不支持“AndExpand” - 只有 StackLayout 这样做。这是为了简化现有 Xamarin.Forms 应用程序的过渡。

“AndExpand”提供的所有功能都已可通过网格用于布局,因此不需要新的附加属性或其他 StackLayout-> 特定属性。

这是解决方案:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="200" />
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
    <BoxView BackgroundColor="Green" Grid.Column="0" />
    <BoxView BackgroundColor="Blue" Grid.Column="1" />
</Grid>
Run Code Online (Sandbox Code Playgroud)

这会产生以下布局: 在此输入图像描述