IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

LinearGradientBrush + DynamicResource - CodeBehind


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2007
    Messages : 494
    Par défaut LinearGradientBrush + DynamicResource - CodeBehind
    Bonjour tout le monde,

    je suis actuellement en train de monter une application wpf. En ressource de mon application, j'ai une couleur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <Color x:key="couleur_theme" ... />
    Cette ressource je l'utilise en mode DynamicResource pour créer des dégradés dans mes formulaires. J'y arrive très bien en XAML. Voilà le code que j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <Window.Background>
       <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
          <GradientStop="{DinamicResource couleur_theme}" Offset="1" />
          <GradientStop="White" Offset="0" />
       </LinearGradientBrush>
    </Window.Background>
    Mais maintenant, j'aimerai créer ce dégradé en Code-Behind. Pour créer un dégradé j'utilise ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    New LinearGradientBrush(Colors.Red, Colors.White, new Point(0,0), new Point(0,1))
    Mais ma question est : comment faire pour que la première couleur utilise la ressource 'couleur_theme" en mode DynamicResource ?

    Je vous remercie pour votre aide,
    Finality

  2. #2
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Utilise FindResource pour récupérer ta couleur.
    http://msdn.microsoft.com/fr-fr/library/ms752326.aspx

  3. #3
    Rédacteur

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2007
    Messages : 494
    Par défaut
    Salut,

    Je connais bien FindRessource mais cette fonction ne permet pas d'appliquer la ressource en mode DynamicRessource.

    J'ai cru comprendre qu'il fallait utiliser setresourcereference, mais je ne sais pas comment faire...

    Pouvez vous m'expliquer ?
    Merci d'avance

  4. #4
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Regarde sur le blogs de Thomas Lebrun : article > Comment assigner une ressource dynamique depuis le code-behind ?

  5. #5
    Rédacteur

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2007
    Messages : 494
    Par défaut
    j'ai bien lu cette article avant de venir poster ici . Mais le truc, c'est que je n'arrive pas à l'appliquer à mon cas ...

    Merci beaucoup pour ton aide

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Salut,

    j'ai une question : pourquoi ne pas mettre le LinearGradientBrush en tant que DynamicResource (en xaml) ? Tu peut mettre beaucoup de chose (pas uniquement des Color). C'est plus simple et ensuite dans le code behind, tu associes le background de la window avec SetResourceReference.

    Perso, les Color et les Brush je les met dans les ressources dynamiques.

  7. #7
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Wow, j'avoue que je n'avais pas vraiment essayer de le faire. Mais maintenant je vois qu'il semble être possible de définir à la main une ressource dynamique vers un LinearGradientBrush, mais pas d'appliquer le même principe à un GradientStop (en tout cas, je ne vois pas comment).
    Dans ton cas il n'est pas possible d'avoir la liaison directement au niveau de LinearGradientBrush et pas au ColorStop ?

Discussions similaires

  1. L'attribut "codebehind" en visual studio 2005
    Par lion000 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 22/05/2007, 09h44
  2. Réponses: 1
    Dernier message: 28/04/2006, 14h57
  3. [VB.NET] Javascript et codebehind
    Par NicoNGRI dans le forum ASP.NET
    Réponses: 3
    Dernier message: 11/02/2005, 12h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo