ComboBox un problème de Foreground

ComboBox un problème de Foreground

Hier en mettant à jour mon applis, je me suis aperçu que la propriété Foreground avait un comportement assez étrange sur la ComboBox.

En effet le SelectedItem n’avait plus le Foreground appliqué quand la comboBox avait plus de six entrés!
Voici mon le code :

  <StackPanel Background="Pink"
                Orientation="Vertical">

        <ComboBox x:Name="cb"
                  Margin="4"
                  SelectedIndex="0"
                  Foreground="Blue">
            <ComboBoxItem>aa</ComboBoxItem>
            <ComboBoxItem>bb</ComboBoxItem>
            <ComboBoxItem>cc</ComboBoxItem>
            <ComboBoxItem>dd</ComboBoxItem>
            <ComboBoxItem>ee</ComboBoxItem>
        </ComboBox>


        <ComboBox x:Name="cb1"
                  Margin="4"
                  SelectedIndex="0"
                  Foreground="Blue">
            <ComboBoxItem>aa</ComboBoxItem>
            <ComboBoxItem>bb</ComboBoxItem>
            <ComboBoxItem>cc</ComboBoxItem>
            <ComboBoxItem>dd</ComboBoxItem>
            <ComboBoxItem>ee</ComboBoxItem>
            <ComboBoxItem>ff</ComboBoxItem>
        </ComboBox>
    </StackPanel>

Et le rendu qu’on obtient :

Combo

Pourquoi le rendu est différent à partir de 6 items?

Il se trouve que quand on a peu d’items, lorsque l’on ouvre la combo, celle ci n’est pas en plein écran.
ComboPremierRendu

Or, à partir de 6, la combo se met en full screen et utilise donc un autre template pour afficher son selected Item.

ComboSecondRendu

Comment résoudre ce problème?

Il suffit de modifier le style du ComboBox d’appliquer le Foreground sur le FlyoutButton.

<Button x:Name="FlyoutButton"       
        Foreground="{TemplateBinding Foreground}"
        Padding="6.5,0,0,0" Grid.Row="1">

Vous pouvez télécharger le projet de démo avec le bug et comment le résoudre ici.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Pin It on Pinterest