12

ComboBox列幅全体を。で埋めるためにストレッチを行うのに問題がありGridViewColumnます。列のサイズが変更されたときにもサイズが変更されます。

次の例ではStackPanelComboBox内部にがあります。StackPanelこれはストレッチするように設定されており、実際には幅を満たすようにストレッチします。

ListView次に、を含む1つの列を追加しStackPanelますComboBoxStackPanelとは両方ともComboBoxストレッチするように設定されていますが、そうではありません。sのサイズを識別するために背景色を使用します。幅を設定するか、より多くの幅が必要になるようStackPanelに要素を追加しない限り、赤はありません。ComboBox

私もプロパティで遊んでみましたがHorizontalContentAlignment成功しませんでした。

<StackPanel Height="59" Margin="45,12,38,0" VerticalAlignment="Top" Background="Green">
    <ComboBox HorizontalAlignment="Stretch" />
</StackPanel>

<ListView x:Name="MyListView" Margin="0,106,0,0">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Num" Width="70">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <StackPanel Background="red" Orientation="Horizontal" HorizontalAlignment="Stretch">
                            <ComboBox HorizontalAlignment="Stretch" />
                        </StackPanel>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
        </GridView>
    </ListView.View>
    <ListViewItem></ListViewItem>
</ListView>
4

1 に答える 1

18

Styleのを設定してみてくださいListViewItem。StackPanelも削除しました。

<ListView x:Name="MyListView" Margin="0,106,0,0">
    <ListView.Resources>
        <Style TargetType="ListViewItem">
            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
        </Style>
    </ListView.Resources>

    <ListView.View>
        <GridView>
            <GridViewColumn Header="Num" Width="170">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <ComboBox />
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
        </GridView>
    </ListView.View>

    <ListViewItem></ListViewItem>
</ListView>
于 2009-05-05T21:50:25.140 に答える