Partage
  • Partager sur Facebook
  • Partager sur Twitter

[VB/WPF]Changer des valeurs sur les styles.

Modification de données dans application.xaml

    18 décembre 2020 à 10:07:50

    Bonjour à tous,

    Je suis à la recherche d'un moyen de changer des variables d'un style se trouvant dans Application.xaml.

    Développeur VB6, VB/net, je me suis autoformé sur le langage WPF, mais j'ai pas mal de lacune sur les bases. J'ai demandé une formation à mon entreprise, mais en ce moment ce n'est pas simple.

    Mon problème:

    J'ai ajouté dans mon application des thèmes modifiant les couleurs, 3 thèmes fixe et un custom. Mais j'ai un souci avec les Combobox, car suivant les couleurs choisi la ligne sélectionnée dans le popup, n'est quasiment pas visible.

    J'ai ajouté plusieurs thème dans Application.xaml, dont celui là pour le combobox:

    <Style x:Key="{x:Type ComboBoxItem}" TargetType="{x:Type ComboBoxItem}">
                <Setter Property="SnapsToDevicePixels" Value="true"/>
                <Setter Property="Foreground" Value="White" />
                <Setter Property="OverridesDefaultStyle" Value="true"/>
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type ComboBoxItem}">
                            <Border Name="Border"
                                  Padding="2"
                                  SnapsToDevicePixels="true">
                                <ContentPresenter />
                            </Border>
                            <ControlTemplate.Triggers>
                                <Trigger Property="IsHighlighted" Value="true">
                                    <Setter TargetName="Border" Property="Background" Value="White"/>
                                    <Setter Property="Foreground" Value="Red"/>
                                </Trigger>
    
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>

    J'ai mi en dur les valeurs, Background = White et ForeGround = Red.

    Depuis ma vu option je peux donc modifier les couleurs de plusieurs paramètres, Foreground des labels, textbox et combobox..., Background des textbox et des form, combobox...
    Je stock sa dans un fichier ini.

    et donc je voudrais y ajouter la partie popup des combobox, afin de pouvoir avoir un contrast correct sur cette partie.

    J'ai plus de 30 vues donc je voudrais éviter de mettre sans dans chaque vue qui utilise des combobox.

    Merci de votre aide.

    • Partager sur Facebook
    • Partager sur Twitter
      21 décembre 2020 à 9:26:28

      umfred a écrit:

      tu trouveras sur cette page du msdn toute la description des styles et templates du comboxitem https://docs.microsoft.com/en-us/dotnet/desktop/wpf/controls/combobox-styles-and-templates?view=netframeworkdesktop-4.8


      Bonjour umfred,

      J'était déjà tombé sur cette page, mais ma question est plus générique.

      Mon styles fonctionnes, mais c'est le moyen de rendre dynamique les couleurs que je n'arrive pas à faire.

      Lorsque mon application démarre je charge les données du fichier ini avec donc les couleurs (SolidColorBrush) choisi pas l'utilisateur et c'est ces couleurs que je dois appliquer dans mon style. C'est cette mécanique que j'ai du mal à comprendre.

      J'ai vu un système avec une collection ou dictionnaire, mais la encore c'était des données fixe. 

      Il faut donc :

      Soit que j'arrive à passer ma couleur aux variable dans le fichier Application.xaml

      Soit avoir accès à cette donnée depuis le XAML des vues qui l'utilise.

      Toutefois je vais regarder en détails malgré tout cette page, car quelques chose m'a peut être, surement même, échappé. Mais comme je vous l'ai dit je me suis autoformé en WPF et j'ai une grosse lacune sur des bases comme les styles et template. Pour le moment je m'en sort en trouvant des morceaux de code que j'adapte, ce qui est le cas pour ces combobox, mais je suis un peu dans le flou à chaque fois.

      Merci en tout cas.

      • Partager sur Facebook
      • Partager sur Twitter

      [VB/WPF]Changer des valeurs sur les styles.

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown