WPF ComboBox在下拉列表中更改大小

时间:2013-02-01 15:29:02

标签: c# wpf combobox

我想知道,如果有一种方法可以在打开下拉列表时更改组合框的大小。

我有一个带有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

我希望你理解我:)。

2 个答案:

答案 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)

你想要这样 enter image description here

这是ListPicker控件。 Combobox不像这样工作。