11

在 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>

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

我可能遗漏了一些简单的东西,但我似乎找不到合适的方法来适应列。

还是有更好的工作控制?

4

2 回答 2

15

*表示填充或分享。如果你有两个,*那么他们将平均分享宽度。

<ColumnDefinition Width="*"/>
于 2012-09-14T21:40:47.507 回答
0

似乎我在多修修补补后找到了解决方案。

问题是:<ColumnDefinition Width="Auto"/>

这导致该列适合内容。我将其更改为:<ColumnDefinition />

这会导致列适合父容器中剩余的空白空间,无论内容大小如何。

于 2012-09-14T21:29:50.573 回答