XAML .NET Maui HorizontalStackLayout扩展以填充剩余窗口

fivyi3re  于 2022-12-16  发布在  .NET
关注(0)|答案(1)|浏览(279)

我试图设计一个界面,其中左边有一个窗格,另一个窗格可以扩展以适应剩余空间。我尝试使用HorizontalStackLayout来实现这一点,但无论我做什么,如果不设置特定的WidthRequest,我都无法使第二个窗格出现。下面是我希望它看起来如何的演示:

这就是我正在尝试的,但似乎没有一种选择组合起作用:

<HorizontalStackLayout HorizontalOptions="FillAndExpand">
    <BoxView BackgroundColor="Green" HorizontalOptions="Start" WidthRequest="200"></BoxView>
    <BoxView BackgroundColor="Blue" HorizontalOptions="FillAndExpand"></BoxView>
</HorizontalStackLayout>

这是我在Maui得到的所有东西,没有设置明确的宽度:

我试过启动,启动和扩展,填充和扩展,都不起作用。我做错了什么?

t9aqgxwy

t9aqgxwy1#

看起来我能够通过使用毛伊岛Grid来完成我的目标。似乎有讨论here,声明如下:
根据此拉取请求,我提出以下建议:
1.“AndExpand”选项不会进入MAUI核心。
1.控件中的“AndExpand”选项将被标记为过时

  1. StackLayout的控件实现将暂时荣誉“AndExpand”选项。我们可能会选择在将来删除该功能。
    1.核心或控制的任何未来版本都不会添加新形式的“AndExpand”选项。
    此拉取请求将控件中的所有“AndExpand”LayoutOptions标记为Obsolete。保留当前用法,但禁用警告。
    提取请求还将“AndExpand”旧功能添加到新的StackLayout。当新的StackLayout检测到使用“AndExpand”时,它将进入一个单独的模式,按预期布局子视图。VerticalStackLayout和HorizontalStackLayout不荣誉“AndExpand”-只有StackLayout支持。这是为了简化现有Xamarin.Forms应用程序的转换。
    “AndExpand”提供的所有功能都可以通过Grid用于布局,因此不需要新的附加属性或其他StackLayout-〉特定属性。
    这是解决方案:
<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="200" />
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
    <BoxView BackgroundColor="Green" Grid.Column="0" />
    <BoxView BackgroundColor="Blue" Grid.Column="1" />
</Grid>

这将产生以下布局:

相关问题