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

*塗りつぶしまたは共有を意味します。あなたが2つ持っていた場合*、それらは幅を均等に共有します。

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

もう少しいじくり回した後、解決策を見つけたようです。

問題は次のとおりです。<ColumnDefinition Width="Auto"/>

これにより、列がコンテンツに収まりませんでした。私はそれを次のように変更しました:<ColumnDefinition />

これにより、コンテンツのサイズに関係なく、親コンテナーに残っている空きスペースに列が収まります。

于 2012-09-14T21:29:50.573 に答える