3 votes

Spécifier la direction du popup d'une combobox Silverlight (dropup)

Est-il possible de faire en sorte que la combo-box silverlight soit "drop up", c'est-à-dire qu'elle affiche la popup au-dessus de la combo-box au lieu d'en dessous comme par défaut ?

2voto

Mart Points 2583

La première étape consiste à définir votre propre modèle de ComboBox, qui contient la définition du Popup. Editez une copie en utilisant Blend par exemple.

Cependant, placer ce Popup au-dessus n'est pas une tâche facile car les Popups Silverlight n'ont pas de Placement o PlacementTarget comme dans WPF qui permettrait de l'afficher au-dessus.

Heureusement, Kent Boogaart a écrit un Comportement Attaché qui ajoute cette capacité et qui est utilisé comme ceci :

<Popup b:PopupPlacement.PlacementTarget="{Binding ElementName=ContentPresenterBorder}">
    <b:Popup.PreferredOrientations>
        <b:PopupOrientationCollection>
            <b:PopupOrientation Placement="Top" HorizontalAlignment="Center"/>
            <b:PopupOrientation Placement="Bottom" HorizontalAlignment="Center"/>
            <b:PopupOrientation Placement="Right" VerticalAlignment="Center"/>
            <b:PopupOrientation Placement="Right" VerticalAlignment="TopCenter"/>
        </b:PopupOrientationCollection>
    </b:Popup.PreferredOrientations>

    <!--Popup content with the ItemPresenter-->
</Popup>

ContentPresenterBorder est le nom du conteneur qui contient le ToggleButton de la ComboBox.

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