我正在尝试设计一个界面,其中左侧有一个窗格,另一个窗格可以扩展以适应剩余空间。我尝试使用 执行此操作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)
我尝试过“开始”、“开始并展开”、“填充并展开”,但没有任何效果。我究竟做错了什么?
看起来我能够通过使用 Maui 来实现我的目标Grid。这里似乎有讨论,声明如下:
通过这个拉取请求,我提出以下建议:
- “AndExpand”选项不会进入 MAUI Core。
- 控件中的“AndExpand”选项将被标记为“已过时”
- StackLayout 的 Controls 实现暂时将支持“AndExpand”选项。我们将来可能会选择删除该功能。
- 任何未来版本的核心或控件中都不会添加新形式的“AndExpand”选项。
此拉取请求将控件中的所有“AndExpand”LayoutOptions 标记为已过时。保留当前用法并禁用警告。
该拉取请求还向新的 StackLayout 添加了“AndExpand”遗留功能。当新的 StackLayout 检测到“AndExpand”的使用时,它将进入一个单独的模式,按预期布局子视图。VerticalStackLayout 和 HorizontalStackLayout 不支持“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)