locked
Binder une couleur dans un style RRS feed

  • Question

  • Bonjour

    Dans les ressources de ma page J'ai un style.

    Dans ce style je définie le background avec un RadialgradientBrush.

    Pour un des couleurs du Gradient, quand j'utilise un couleur en dur ou avec un staticResource ça marche.

    Par contre si j'essai de binder une couleur ça ne marche pas.

    C'est normal ? Pourquoi ?

    Exemple :

    Avec ça les couleurs spécifiés (en dur) s'appliquent au RadialgradientBrush.

            <Style x:Key="StyleBorderAngleHautGaucheSelectionKey" TargetType="Border">
                <Setter Property="Background">
                    <Setter.Value>
                        <RadialGradientBrush  GradientOrigin="1, 1" Center="1, 1" RadiusX="1" RadiusY="1"
                                              Opacity="{StaticResource BorderOpacitySelectionKey}">
                            <GradientStop Color="{StaticResource PhoneAccentColor}" Offset="0"/>
                            <GradientStop Color="{StaticResource PhoneBackgroundColor}" Offset="1"/>
                        </RadialGradientBrush>
                    </Setter.Value>
                </Setter>
            </Style>

    Avec le binding la couleur ne s'applique pas, Color="{Binding CouleurBordure}"

            <Style x:Key="StyleBorderAngleHautGaucheSelectionKey" TargetType="Border">
                <Setter Property="Background">
                    <Setter.Value>
                        <RadialGradientBrush  GradientOrigin="1, 1" Center="1, 1" RadiusX="1" RadiusY="1"
                                              Opacity="{StaticResource BorderOpacitySelectionKey}">
                            <GradientStop Color="{Binding CouleurBordure}" Offset="0"/>
                            <GradientStop Color="{StaticResource PhoneBackgroundColor}" Offset="1"/>
                        </RadialGradientBrush>
                    </Setter.Value>
                </Setter>
            </Style>

    Merci.
    mardi 21 janvier 2014 21:59

Réponses

  • Bonjour,

    Essayez :

            <Style x:Key="StyleBorderAngleHautGaucheSelectionKey" TargetType="Border">
                <Setter Property="Background">
                    <Setter.Value>
                        <RadialGradientBrush  GradientOrigin="1, 1" Center="1, 1" RadiusX="1" RadiusY="1"
                                              Opacity="{StaticResource BorderOpacitySelectionKey}">
                            <GradientStop Color="{Binding CouleurBordure, RelativeSource={RelativeSource Self}}" Offset="0"/>
                            <GradientStop Color="{StaticResource PhoneBackgroundColor}" Offset="1"/>
                        </RadialGradientBrush>
                    </Setter.Value>
                </Setter>
            </Style>

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    • Proposé comme réponse Aurel Bera mercredi 22 janvier 2014 11:57
    • Marqué comme réponse Aurel Bera mardi 28 janvier 2014 07:13
    mercredi 22 janvier 2014 00:35

Toutes les réponses

  • Bonjour,

    Essayez :

            <Style x:Key="StyleBorderAngleHautGaucheSelectionKey" TargetType="Border">
                <Setter Property="Background">
                    <Setter.Value>
                        <RadialGradientBrush  GradientOrigin="1, 1" Center="1, 1" RadiusX="1" RadiusY="1"
                                              Opacity="{StaticResource BorderOpacitySelectionKey}">
                            <GradientStop Color="{Binding CouleurBordure, RelativeSource={RelativeSource Self}}" Offset="0"/>
                            <GradientStop Color="{StaticResource PhoneBackgroundColor}" Offset="1"/>
                        </RadialGradientBrush>
                    </Setter.Value>
                </Setter>
            </Style>

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    • Proposé comme réponse Aurel Bera mercredi 22 janvier 2014 11:57
    • Marqué comme réponse Aurel Bera mardi 28 janvier 2014 07:13
    mercredi 22 janvier 2014 00:35
  • Bonjour,

    Est-ce que vous avez testé les solutions proposées ? Merci de partager avec nous les résultats, afin que d'autres personnes avec le même problème puissent profiter de cette solution.

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    lundi 27 janvier 2014 07:16