2009-01-02 51 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