如何在 WinUI 3 中的 ItemsRepeater 中填充 TextBox?

How to fill TextBox inside ItemsRepeater in WinUI 3?

我试图用集合中的文本框列表填充所有宽度 space。在 UWP 中添加 <UniformGrid Rows="1"/> to ItemsControl 非常简单,但使用 WinUI 3 我需要更改为 ItemsRepeater and UniformGridLayout 但 UniformGridLayout 中没有行 属性。这是我的代码:

<ItemsRepeater ItemsSource="{x:Bind ViewModel.Specimens}">
    <ItemsRepeater.Layout>
        <UniformGridLayout Orientation="Horizontal" ItemsStretch="Fill"/>
    </ItemsRepeater.Layout>
    <ItemsRepeater.ItemTemplate>
        <DataTemplate x:DataType="viewModels:SpecimenViewModel">
            <TextBox Margin="10" Text="{x:Bind Name, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
        </DataTemplate>
    </ItemsRepeater.ItemTemplate>
</ItemsRepeater>

显示的是:

预期行为:

最后,我可以检查 TextBox 是否会随着内部文本的增加而同时增加它们的大小,但我希望始终具有相同的宽度。

我想你快到了我想你只需要将 MaximumRowsOrColumns 添加到列数中,用 MinColumnSpacing="10" ItemsJustification="SpaceAround"

放置一些 space

例如:

<UniformGridLayout MinColumnSpacing="10"
                            ItemsJustification="SpaceAround" MaximumRowsOrColumns="2" Orientation="Horizontal" ItemsStretch="Uniform"/>

编辑:我将 ItemsStretch Fill 更改为 Uniform,不同高度内容时体验更好