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 ne fonctionne qu'une fois


Sujet :

Silverlight

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Par défaut Storyboard ne fonctionne qu'une fois
    Bonjour. Mon problème est le suivant:
    J'utilise un storyboard qui fait "grossir" mon canvas. Donc en faite il l'étend (avec donc ses children). Cela se fait en cliquant sur le Canvas. J'ai ajouté une croix qui appelle la fonction Retour, qui consiste a remettre le Canvas a sa taille original. Cependant cela ne marche qu'une fois. Apres si je reclick sur le Canvas il ne se passe rien.
    Voila le code du Canvas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <Canvas   x:Name="Canvas2" Visibility="Visible" RenderTransformOrigin="0.5,0.5" Width="280" Height="140" Canvas.Top="348" MouseLeftButtonDown="comence2" Canvas.ZIndex="1">
    La fonction appelle pour grossir:
    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
    70
    71
    72
    73
    74
    private void comence2(object sender, RoutedEventArgs e)
    		{
    			if(a2==1){ 
     
    				SelectedItem.Content+=" juste avant grossissement"+"   ";
    				Grossissement2.Begin();
    				SelectedItem.Content+="\n juste apres grossissement ";
     
    				a2=0;
    				b2=1;
    					string title="";
    					string id="";
    					int logosrc=xmlData3.IndexOf("<logo>");
    					int finlogosrc=xmlData3.IndexOf("</logo>");
    					string logoSrcString=xmlData3.Substring(logosrc,finlogosrc-logosrc);
    					logoSrcString=logoSrcString.Replace("<logo>", "");;
    					BitmapImage logoSourceUri= new BitmapImage();
    					logoSourceUri.UriSource = new Uri(logoSrcString);
    					logo.Source=logoSourceUri;
     
    					int debutoffre=xmlData3.IndexOf("<offre>");
    					int finoffre=xmlData3.IndexOf("</offre>");
    					string offretexte=xmlData3.Substring(debutoffre,finoffre-debutoffre);
    					offretexte=offretexte.Replace("<offre>", "");offretexte=offretexte.Replace("</offre>", "");	
    					offre.Text=offretexte;
    					offre.Visibility=Visibility.Visible;
     
    					for(int i=1;i<8;i++){
    					int nbrtitle=xmlData3.IndexOf("<title_"+i+">");
    					int nbrfintitle=xmlData3.IndexOf("</title_"+i+">");
    					int nbrid=xmlData3.IndexOf("<id_"+i+">");
    					int nbrfinid=xmlData3.IndexOf("</id_"+i+">");
    					title=xmlData3.Substring(nbrtitle, nbrfintitle-nbrtitle);
    					id=xmlData3.Substring(nbrid,nbrfinid-nbrid);
    					title=title.Replace("<title_"+i+">", "");title=title.Replace("</title_"+i+">", "");
    					id=id.Replace("<id_"+i+">", "");id=id.Replace("</id_"+i+">", "");
    					switch (i)
    						{
    							case 1: 
    								if(id==""){famille1.Visibility=Visibility.Collapsed;}
    								else {famille1.Name=id;famille1.Text=title;famille1.Visibility=Visibility.Visible;}
    								break;
    							case 2:
    								if(id==""){famille2.Visibility=Visibility.Collapsed;}
    								else {famille2.Name=id;famille2.Text=title;famille2.Visibility=Visibility.Visible;}
    								break;
    							case 3:
    								if(id==""){famille3.Visibility=Visibility.Collapsed;}
    								else {famille3.Name=id;famille3.Text=title;famille3.Visibility=Visibility.Visible;}
    								break;
    							case 4:
    								if(id==""){famille4.Visibility=Visibility.Collapsed;}
    								else {famille4.Name=id;famille4.Text=title;famille4.Visibility=Visibility.Visible;}
    								break;
    							default:
    								SelectedItem.Content="error";
    								break;
    						}SelectedItem.Content+=" sors du switch "+"\n";
    					}
    				}
     
    			if(a2==0 && b2==0){
    					Canvas clickcanvas =(Canvas)sender; 
    					LoadFamille(clickcanvas.Name);
    					SelectedItem.Content+="dans if avec a2=0.";
    					Move2.Begin();
    					Canvas1.SetValue(Canvas.ZIndexProperty,0);
    					Canvas2.SetValue(Canvas.ZIndexProperty,1);
    					Canvas3.SetValue(Canvas.ZIndexProperty,0);
    					a2=1;
    					}
    			SelectedItem.Content+=" Sorti de if, valeur de a2="+a2.ToString();
    			a3=0;a1=0;c1=0;c3=0;
    			}
    Et la fonction retour:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    		private void retour2(object sender, RoutedEventArgs e)
    		{
    			SelectedItem.Content+=" debut retour2"+"\n";
    			MoveRetour2.Begin();
    			flechedroite.Visibility=Visibility.Collapsed;
    			flechegauche.Visibility=Visibility.Collapsed;
    			a3=0;a1=0;c1=0;c3=0;a2=0;b2=0;
    			SelectedItem.Content+=" fin retour2"+"\n";
    		}
    J'ai pu trouve ce qui fais buger. C'est dans le fonction comence2 l'appel de LoadFamille(). Enfaite cela va cherche un fichier xml. Avec ce fichier xml je fais ma petite sauce et fais donc apparaitre son contenu dans des listbox. Si j'enleve ce LoadFamille(), le Canvas grossis et retrecis autant de fois que l'on veux. Il ne bloque pas apres une utilisation.
    Si vous avez une idée pour enleve ce bug... Parce que je suis dessus depuis quelque temps deja...
    Merci d'avance

  2. #2
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    Si tu ne dit pas ce que fait LoadFamille, on risque d'avoir du mal à t'aider.

    En passant, il y a mieux pour traiter du XML que d'utiliser des IndexOf(), LinqToXml serait tout de même plus simple, ou au moins un XMLTextReader.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Par défaut
    voila ce que fais LoadFamille:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public void LoadFamille(string a)
    		{
    			WebClient xmlClient = new WebClient(); 
    			xmlClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(XMLFileLoaded3);
    			xmlClient.DownloadStringAsync(new Uri("fam_"+a+".xml", UriKind.RelativeOrAbsolute)); 
    		}
    		void XMLFileLoaded3(object sender, DownloadStringCompletedEventArgs e) 
    		{ 
    		if (e.Error == null) 
    			{ 
    			xmlData3 = e.Result; 
    			} 
    		else SelectedItem.Content="error loadFamille"+"\n";
    		}
    Sinon pour traiter le xml, j'ai trouve d'autre solution sur le net mais ca marchais pas toujours tres bien. Donc j'ai fais comme j'ai pu^^. Mais ca marche comme je veux donc le seul probleme est ce probleme de storyboard qui ne fonctionne pas tres tres bien.
    Merci de ton aide^^

Discussions similaires

  1. On Error GoTo qui ne fonctionne qu'une fois
    Par bernard0828 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/08/2007, 07h39
  2. bouton submit qui ne fonctionne qu'une fois
    Par sam01 dans le forum Langage
    Réponses: 6
    Dernier message: 06/07/2007, 08h19
  3. [AJAX] Méthode sous Ajax qui ne fonctionne qu'une fois?
    Par patrice419 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/04/2007, 13h19
  4. Réponses: 2
    Dernier message: 26/06/2006, 13h43
  5. allocation dynamique ne fonctionne qu une fois.
    Par michael urbain dans le forum C
    Réponses: 7
    Dernier message: 11/03/2006, 10h51

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