我想知道,如果有一种方法可以在打开下拉列表时更改组合框的大小。
我有一个带有Label和ComboBox的StackPanel,包含在Grid中。
<StackPanel x:Name="stackPanel">
<Grid>
<Label Content="A:"/>
<ComboBox x:Name="cbA"/>
</Grid>
<Grid>
<Label Content="B:"/>
<ComboBox x:Name="cbB"/>
</Grid>
</StackPanel>
Looks like:
Label ComboBox
Label ComboBox
如果我打开一个ComboBox,它不应该重叠,看起来像:
Label ComboBox
DropDown
DropDown
DropDown
Label ComboBox
我希望你理解我:)。
答案 0 :(得分:1)
在两个组合框之间放置一个间隔网格或其他元素?您需要在MaxDropDownHeight
上设置cbA
。如果元素少于默认高度允许的元素,则空间将太大。
<StackPanel x:Name="stackPanel">
<StackPanel.Resources>
<BooleanToVisibilityConverter x:Key="VisibilityConverter"/>
</StackPanel.Resources>
<Grid>
<Label Content="A:"/>
<ComboBox x:Name="cbA" MaxDropDownHeight="100" ItemsSource="{Binding Path=ComboTest}"/>
</Grid>
<Grid x:Name="Spacer" Height="{Binding ElementName=cbA, Path=MaxDropDownHeight}"
Visibility="{Binding ElementName=cbA, Path=IsDropDownOpen, Converter={StaticResource VisibilityConverter}}"/>
<Grid>
<Label Content="B:"/>
<ComboBox x:Name="cbB"/>
</Grid>
</StackPanel>
答案 1 :(得分:0)
你想要这样
这是ListPicker控件。 Combobox不像这样工作。