【发布时间】:2016-06-05 12:21:52
【问题描述】:
我在将ComboBox 拉伸以填充GridViewColumn 中的整个列宽时遇到问题。调整列大小时,它也应该调整大小。
在下面的示例中,我有一个StackPanel,里面有一个ComboBox。这设置为拉伸,实际上将拉伸以填充StackPanel 宽度。
然后我添加一个带有一列的ListView,其中包含一个带有ComboBox 的StackPanel。 StackPanel 和 ComboBox 都设置为拉伸,但它们没有。我使用背景颜色来标识StackPanels 的大小,除非我设置宽度或向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>
【问题讨论】:
-
除非 StackPanel 中包含某些内容,否则使用边框可能会更好。
-
意识到 StackPanel 可以省略。这个例子是我真正问题的简化——我似乎需要一个周围的 StackPanel。因此,我保留了它的问题。有关详细信息,请参阅我对@bendeway 答案的评论。
-
重新成为您的版主标志;你错过了 12 月 26 日和 3 月 6 日(除非我错过了错误的日志)
-
使用
DockPanel而不是StackPanel