2009-01-02 113 views
10

我在运行时将项目添加到WPF中的组合框(通过数据绑定到列表)。我想动态设置下拉框的高度,以便显示所有(或大部分)项目。不幸的是,似乎下拉的高度设置了一次,不能动态改变。它似乎总是相同的大小。在WPF中设置组合框的下拉高度

是否有一些相对简单的调整下拉高度?


是的,我已经尝试将项目添加到组合框后设置它。在调试器中,它看起来像是新值。但是,当我打开下拉菜单时,它会下降到自己选择的大小。我试图夸大MaxDropDownHeight,甚至将它设置为“自动”无济于事。

回答

14

属性MaxDropDownHeight是组合框上的一个依赖项属性,用于控制下拉列表的高度。由于它是一个依赖属性,它的值可以动态设置。

您是否尝试过设置此值?

+0

此评论的原因,这不是一个很好的答案是因为他的数据绑定到列表中。我不知道为什么,但MaxDropDownHeight在绑定到列表时没有效果。如果您更改为ObservableCollection,就像@ kimmoli所说的那样,它就可以工作。 – BrianVPS 2017-10-24 18:36:07

0

设置ComboBox的Style = {x:Null}以确保您没有影响下拉面板大小的样式问题。

4

对我而言,问题在于ComboBox下拉菜单中有95像素高度的项目数量。

我的ComboBox数据源是Collection<>,但在将其更改为ObservableCollection<>后,ComboBox下拉菜单打开,显示所有项目。

现在还有MaxDropDownHeight属性工作得很好。

参考:在这里Make the dropdown of a combobox be shorter?

+0

我使用了MaxDropDownHeight – Ziggler 2018-01-11 00:13:15