自动调整网格列以占用父节点中的剩余空间

Jus*_*ieu 6 wpf grid

在WPF中,我有一段时间试图让网格大小合适.

我的网格有以下布局:

<ItemsControl HorizontalContentAlignment="Stretch">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="80"/>
                        <ColumnDefinition Width="80"/>
                        <ColumnDefinition Width="100"/>
                    </Grid.ColumnDefinitions>
                    <Label Grid.Column="0" />
                    <Label Grid.Column="1"/>
                    <TextBox Grid.Column="2"/>
                    <Button Grid.Column="3"/>
                </Grid>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
</ItemsControl>
Run Code Online (Sandbox Code Playgroud)

问题是Width ="Auto"似乎是将该列调整为内容的宽度,而不是填充父容器中的额外空间.这使得其余列全部未对齐,并且每行末尾都有丑陋的空白区域.

我可能错过了一些简单的东西,但我似乎无法找到适当的方法来适应列.

或者是否有更好的控制工作?

pap*_*zzo 11

*意味着填补或分享.如果你有两个,*那么他们将均匀地分享宽度.

<ColumnDefinition Width="*"/>
Run Code Online (Sandbox Code Playgroud)