14 votes

Définir la hauteur de la liste déroulante d'une combobox dans WPF

J'ai une combobox dans WPF à laquelle j'ajoute des éléments au moment de l'exécution (via une liaison de données à une liste). J'aimerais définir la hauteur de la liste déroulante de manière dynamique afin que tous les éléments (ou la plupart) s'affichent. Malheureusement, il semble que la hauteur de la liste déroulante soit définie une fois pour toutes et ne puisse pas être modifiée dynamiquement. Elle semble toujours avoir la même taille.

Existe-t-il un moyen relativement simple de régler la hauteur de la liste déroulante ?


Oui, j'ai essayé de le définir après avoir ajouté les éléments à la combobox. Dans le débogueur, il semble que la nouvelle valeur soit présente. Cependant, lorsque j'ouvre la liste déroulante, elle descend à une taille qu'elle a elle-même choisie. J'ai essayé d'exagérer la hauteur MaxDropDownHeight et je l'ai même réglée sur "Auto", sans succès.

17voto

w4g3n3r Points 808

La propriété MaxDropDownHeight est une propriété de dépendance, sur la boîte combo qui contrôle la hauteur de la liste déroulante. Comme il s'agit d'une propriété de dépendance, sa valeur peut être définie de manière dynamique.

Avez-vous essayé de définir cette valeur ?

MaxDropDownHeight="Auto"

10voto

kimmoli Points 91

Dans mon cas, le problème était que la liste déroulante de la ComboBox avait une hauteur de 95 pixels, quel que soit le nombre d'éléments.

Ma source de données pour la ComboBox était une Collection<> mais après l'avoir changé en ObservableCollection<> la liste déroulante de la ComboBox s'ouvre et affiche tous les éléments.

Maintenant aussi le MaxDropDownHeight fonctionne très bien.

Ref : Ce commentaire ici Faire en sorte que la liste déroulante d'une combobox soit plus courte ?

0voto

user1156862 Points 35

Définissez le Style={x:Null} de votre ComboBox pour vous assurer qu'aucun problème de style n'affecte la taille du panneau déroulant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X