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

Silverlight Discussion :

Storyboard côté code behind..


Sujet :

Silverlight

  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 163
    Par défaut Storyboard côté code behind..
    Salut,
    Voilà je débute en WPF et SilverLight et là j'essaye de réaliser une anim sur la couleur d'une entité au MouseEnter...
    Comme je voudrai rester dynamique je ne code rien en XAML et génère mon storyboard côté code behind... Et je n'arrive pas à obtenir un effet voici le code:

    dans l'initialize :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Storyboard oStory = new Storyboard();
    ColorAnimation oColorAnim = new ColorAnimation();
    oColorAnim.To = Colors.Green;
    oColorAnim.Duration = new Duration(TimeSpan.FromSeconds(5));
    oStory.Children.Add(oColorAnim);
    Storyboard.SetTarget(oColorAnim, this);
    DependencyProperty oProp = DependencyProperty.Register("CouleurBordure", typeof(Color), typeof(UCBouton), new PropertyMetadata(Colors.Blue));
    Storyboard.SetTargetProperty(oColorAnim, new PropertyPath(oProp));
    La propriété de mon objet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    public Color CouleurBordure
    {<div style="margin-left:40px">
    get
    {<div style="margin-left:40px">
    SolidColorBrush oBrush = (SolidColorBrush)Rect.Stroke;
    return oBrush.Color;</div>}
    set
    {<div style="margin-left:40px">
    SolidColorBrush oBrush = (SolidColorBrush)Rect.Stroke;
    if (oBrush == null)
    {<div style="margin-left:40px">
    oBrush = new SolidColorBrush(value);
    Rect.Stroke = oBrush;</div>}
    else<div style="margin-left:40px">
    oBrush.Color = value;</div></div>}</div>}
    dans l'event :

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Euh pourquoi tu animes pas directement la couleur du Stroke ?

    De plus je ne vois pas en quoi tout faire en code behind, rend la chose plus dynamique.

  3. #3
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 163
    Par défaut
    En fait c'est se que j'essaye de faire animer la couleur du Stroke mais à partir d'une entité objet Storyboard.
    Je préfère le faire comme ça car je ne vois pas comment créer/modifier un Storyboard à la volé sans utiliser le code.. ?
    As tu une explication sur la raison qui fait que l'animation ne se lance pas au Begin() ?
    thx

  4. #4
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 163
    Par défaut
    Je modifie la question car ça marche très bien lorsque je passe directement par le Rectangle dans mon control...
    Alors mon soucis se situe au niveau du bind entre la propriété couleur que j'ai créé et l'animation et/ou le register de la prop :
    - SetTarget(monAnim,this)
    - DependencyProperty.Register("CouleurBordure",...

  5. #5
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Ta DP est mauvaise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    public Color MyBorder
    {
        get { return (Color)GetValue(BorderProperty); }
        set 
        {
            rect.Stroke = new SolidColorBrush(value);
            SetValue(BorderProperty, value); 
        }
    }
     
    // Using a DependencyProperty as the backing store for Border.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty BorderProperty =
        DependencyProperty.Register("Border", typeof(Color), typeof(SilverlightControl1), new PropertyMetadata(new PropertyChangedCallback(ColorChanged)));
     
    private static void ColorChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
    {
        ((SilverlightControl1)sender).MyBorder = (Color)e.NewValue;
    }

  6. #6
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 163
    Par défaut
    Merci pour ton aide!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. StoryBoard introuvable dans le code behind
    Par cyberbobby dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 24/04/2009, 13h11
  2. [C#] creer et afficher une table en code behind
    Par shams dans le forum ASP.NET
    Réponses: 9
    Dernier message: 13/07/2005, 16h51
  3. [C#]ajout code dans code behind
    Par liliprog dans le forum ASP.NET
    Réponses: 8
    Dernier message: 21/06/2005, 11h03
  4. Réponses: 5
    Dernier message: 24/05/2005, 12h31
  5. [VB.NET] Création d'un tableau en code behind
    Par netr dans le forum ASP.NET
    Réponses: 6
    Dernier message: 11/05/2004, 10h02

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