Fai in modo che le caselle combinate WPF riempiano l'intera larghezza della colonna

StackOverflow https://stackoverflow.com/questions/826985

  •  05-07-2019
  •  | 
  •  

Domanda

Sto riscontrando problemi nell'allungare un ComboBox per riempire l'intera larghezza della colonna in un GridViewColumn . Dovrebbe inoltre ridimensionare quando viene ridimensionata la colonna.

Nel seguente esempio ho un StackPanel con un ComboBox all'interno. Questo è impostato per allungare e in effetti si allungherà per riempire la larghezza StackPanel .

Quindi aggiungo un ListView con una colonna, contenente un StackPanel con un ComboBox . Sia StackPanel che ComboBox sono impostati per allungarsi, ma non lo fanno. Uso i colori di sfondo per identificare la dimensione del StackPanel e non c'è rosso a meno che non imposti una larghezza o aggiunga elementi al ComboBox in modo tale che abbia bisogno di più larghezza.

Ho anche provato a giocare con la proprietà HorizontalContentAlignment senza successo.

<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>
È stato utile?

Soluzione

Prova a impostare lo Style di ListViewItem . Ho anche rimosso il tuo 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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top