Сделайте WPF ComboBoxes заполнением всей ширины столбца
У меня возникают проблемы с растягиванием ComboBox
, чтобы заполнить всю ширину столбца в GridViewColumn
. Он также должен изменять размер, когда размер столбца изменяется.
В следующем примере у меня есть StackPanel
с ComboBox
внутри. Это значение растягивается и фактически растягивается, чтобы заполнить ширину StackPanel
.
Затем я добавляю a ListView
с одним столбцом, содержащим StackPanel
с ComboBox
. Оба параметра StackPanel
и ComboBox
настроены на растяжение, но они этого не делают. Я использую цвета фона, чтобы определить размер StackPanel
s, и нет красного цвета, если я не установил ширину или не добавлю элементы в 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>
Ответы
Ответ 1
Попробуйте установить 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>