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 :

Impossible de trouver l'élément TargetName


Sujet :

Silverlight

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Impossible de trouver l'élément TargetName
    Bonjour
    Après avoir créé à la volée des Grids contenant en enfants un Canvas, un TextBlock et un rectangle
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
    private UIElement CreateButton(int MinWidthButton, int advocatedHeightButton, NavigationStore storeItem, int heightCanvas)
            {
     ///Create Button with Colors Properties from CDiscount Assignation List
     
                #region Design GridButton
                Grid gridButton = new Grid();
                gridButton.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(advocatedHeightButton)});
                gridButton.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(MinWidthButton) });
                gridButton.Name = "gridButton" + storeItem.storeId;
     
                Canvas canvas = new Canvas();
                canvas.Background = ItemSiteColor.SetPropertiesFromItemSite(storeItem.storeColorName);
                canvas.VerticalAlignment = System.Windows.VerticalAlignment.Top;
                gridButton.Children.Add(canvas);
                canvas.Height = 5;
                canvas.Name = "canvasTemplate"+storeItem.storeId.ToString();
     
                Rectangle rect = new Rectangle();
                rect.Fill = new SolidColorBrush(Colors.Transparent);
                rect.Height = gridButton.Height;
                rect.Width = gridButton.Width;
                gridButton.Children.Add(rect);
     
                TextBlock ButtonContentTxtBlck = new TextBlock();
                ButtonContentTxtBlck.Text = storeItem.storeName;
                ButtonContentTxtBlck.TextWrapping = TextWrapping.Wrap;
                ButtonContentTxtBlck.VerticalAlignment = System.Windows.VerticalAlignment.Center;
                ButtonContentTxtBlck.HorizontalAlignment = System.Windows.HorizontalAlignment.Center;
                #endregion
     
                gridButton.Children.Add(ButtonContentTxtBlck);
     
                /// Define Button Content from Item Informations
     
                gridButton.MinHeight = advocatedHeightButton;
                gridButton.MinWidth = MinWidthButton;
     
                /// Create Anonymous Method for Button Click Event
                gridButton.MouseLeftButtonDown += new MouseButtonEventHandler((s, arg) => { 
     
                    ClickStoreButton(storeItem.storeId);
                    _buttonIdSelected = storeItem.storeId;
                    ResetCanvasOnStackPanel(heightCanvas);
                    canvas.Height = advocatedHeightButton;
                    });
     
                /// Create Anonymous Method for Button Mouse Enter Event
                gridButton.MouseEnter += new MouseEventHandler((s, arg) => {
                    canvas.Height = advocatedHeightButton;
                });
     
                /// Create Anonymous Method for Button Mouse Leave Event
                gridButton.MouseLeave += new MouseEventHandler((s, arg) => {
                    if (_buttonIdSelected == storeItem.storeId)
                    {
                        canvas.Height = advocatedHeightButton;
                    }
                    else
                    {
                        canvas.Height = 5;
                    }
                });
                if (_buttonIdSelected == storeItem.storeId)
                {
                    canvas.Height = advocatedHeightButton;
                }
                return gridButton;
    }
    Je voudrais réinitiliser tout mes canvas et pour celui sélectionné faire une animation
    Donc j'appelle la méthode ResetCanvasOnStackPanel dans l'event clic gauche de ma mouse

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    private void ResetCanvasOnStackPanel(int heightCanvas)
            {
                foreach (Grid grid in StoreStckPnl.Children)
                {
     
                    /// Get child canvas from Store Stack Panel
                    var query = from gridElement in grid.Children
                                where gridElement.GetType() == typeof(Canvas)
                                select gridElement;
                    Canvas canv = (Canvas)query.FirstOrDefault();
                    if (canv.Height > heightCanvas)
                    {
                        Storyboard sb = new Storyboard();
                        sb.SetValue(NameProperty, StoreStckPnl.Name);
                        DoubleAnimationUsingKeyFrames anim = new DoubleAnimationUsingKeyFrames();
     
                        Storyboard.SetTargetName(anim, canv.Name);
                        Storyboard.SetTargetProperty(anim, new PropertyPath("(UIElement.RenderTransform).(CompositeTransform.ScaleY)"));
                        anim.BeginTime = new TimeSpan(0, 0, 0);
     
                        EasingDoubleKeyFrame keyFrame0 = new EasingDoubleKeyFrame();
                        keyFrame0.KeyTime = TimeSpan.FromSeconds(0.1);
                        keyFrame0.Value = 10;
                        anim.KeyFrames.Add(keyFrame0);
     
                        sb.Children.Add(anim);
                        sb.Begin();
                    }
     
                    canv.Height = heightCanvas;
                }
            }
    Sauf qu'il me sort une exception sur le Begin comme quoi le TargetNamen'est pas trouvable

  2. #2
    Expert éminent sénior
    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
    Points : 13 380
    Points
    13 380
    Par défaut
    En code behind c'est plus partique d'utiliser SetTarget, tu as juste besoin de lui passer l'objet que tu veux animer, tu es sûr d'éviter des erreurs de ce genre.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci ça fait deux heures que je galère (bon j'ai quand meme fait autre chose entre temps) bon maintenant c'est sur la targetproperty introuvable qu'il me sort une erreur.

  4. #4
    Expert éminent sénior
    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
    Points : 13 380
    Points
    13 380
    Par défaut
    Est-ce que tes Canvas ont bien une RenderTransform de type CompositeTransform au moins ?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    ah ben non vu qu'ils sont créés à la volée.
    je vois ça et je mets la solution dès que je l'ai
    Merci

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

Discussions similaires

  1. [Débutant] Impossible de trouver un élément de point de terminaison
    Par genius4evers dans le forum Windows Communication Foundation
    Réponses: 3
    Dernier message: 09/02/2015, 14h40
  2. Impossible de trouver un élément
    Par gobelet dans le forum jQuery
    Réponses: 8
    Dernier message: 07/06/2012, 12h30
  3. Réponses: 7
    Dernier message: 20/02/2009, 15h06
  4. Réponses: 1
    Dernier message: 28/06/2007, 10h26
  5. Impossible de trouver la procédure stockée
    Par engi dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 12/05/2004, 17h28

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