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 :

Du code entre 2 animations


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Gregory.M
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 684
    Par défaut Du code entre 2 animations
    Bonjour,


    A l'ai de Blend je crée une animation, je voudrais savoir si pendant cette animation il est possible d'ajouter du code C#.

    Dans mon cas je voudrais faire disparaitre des controles et en faire apparaitre d'autres.


    Cordialement

  2. #2
    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
    Je suis pas sûr d'avoir compris... en fait dans ton animation, tu peux jouer sur la propriété Opacity de ton contrôle pour le faire disparaître.

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        <Storyboard x:Key="HideControl">
          <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="TonControl" 
                                         Storyboard.TargetProperty="(UIElement.Opacity)">
            <SplineDoubleKeyFrame KeyTime="00:00:0.25" Value="0"/>
          </DoubleAnimationUsingKeyFrames>
        </Storyboard>

    [Edit] Cette animation cache le control, il reste à en faire une qui met l'opacité à 1 si tu veux le faire apparaître.

  3. #3
    Membre éclairé Avatar de Gregory.M
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 684
    Par défaut
    Non ce n'est pas ca.

    Imaginons que je fasse une animation, peu importe laquelle.
    Et je voudrais que pendant que cette animation s"execute également exécuter du code C#.

  4. #4
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Je sais que l'inverse est possible :
    Lancer une animation depuis du code c#, ça ne te conviendrai pas ça ?

  5. #5
    Membre éclairé Avatar de Gregory.M
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 684
    Par défaut
    Si c est quelque chose qui me conviendrait

  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
    Oui tu peux lancer ton animation depuis le code ainsi :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            Storyboard sb = (Storyboard)FindResource( "keyDeMonAnimation" );
            sb.Begin( this );
     
            // Code c# divers, par exemple :
            monButton.Text = "toto";

    Le code que tu auras écris va se produire durant l'animation (tout du moins si elle dure suffisamment longtemps).

    Est-ce que ça répond à ta question ?

  7. #7
    Membre éclairé Avatar de Gregory.M
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 684
    Par défaut
    Oui cela répond à ma question.
    Merci

  8. #8
    Membre éclairé Avatar de Gregory.M
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 684
    Par défaut
    Alors en fait pour faire ce que je veux.
    J'ai créé mon effet désiré en 2 partie pour pouvoir effectuer du code entre les 2 animations.


    Ce quie je fais pour tester pour le moment, c est que je lance mes animations l'une apres l'autre. Mais j'ai l'impression que la 1ere storyboard n'est pas lancé.

    Dois-je passer par une Timer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
            public void OnTestClick(object sender, RoutedEventArgs e)
            {
                Storyboard sb1 = (Storyboard)FindResource("FlipFirstHalf");
                sb1.Begin(this);
                sb1.Stop(this);
     
                //Storyboard sb2 = (Storyboard)FindResource("FlipSecondHalf");
                //sb2.Begin(this);
                //sb2.Stop(this);
     
            }

  9. #9
    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
    Je reviens sur ton problème car la solution est peut-être de mettre tes animations dans le même Storyboard. Etant donné que les animations sont lancées en même temps . Ça devrait résoudre ce problème.

  10. #10
    Membre éclairé Avatar de Gregory.M
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 684
    Par défaut
    Citation Envoyé par binoo Voir le message
    Je reviens sur ton problème car la solution est peut-être de mettre tes animations dans le même Storyboard. Etant donné que les animations sont lancées en même temps . Ça devrait résoudre ce problème.
    Je ne vois pas ce que tu veux dire.
    Peux tu mettre un petit exemple.

    Le probleme que j'avais était le suiviant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    //je lancais mon animation
    // je faisais du code
    //je lancais la 2eme
    Et uniquement la 2eme était visible

  11. #11
    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
    En fait j'avais oublié le code que tu faisais entre les deux, mais dans l'idée :
    Code xml : 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
    		<Storyboard x:Key="FlipAnim">
     
    			<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="Cadre" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">
    				<SplineDoubleKeyFrame KeyTime="00:00:03" Value="0"/>
    			</DoubleAnimationUsingKeyFrames>
    			<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="txtContent" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">
    				<SplineDoubleKeyFrame KeyTime="00:00:03" Value="0"/>
    			</DoubleAnimationUsingKeyFrames>
     
    			<DoubleAnimationUsingKeyFrames BeginTime="00:00:03" Storyboard.TargetName="Cadre" Storyboard.TargetProperty="(FrameworkElement.LayoutTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">
    				<SplineDoubleKeyFrame KeyTime="00:00:03" Value="1"/>
    			</DoubleAnimationUsingKeyFrames>
    			<PointAnimationUsingKeyFrames BeginTime="00:00:03" Storyboard.TargetName="Cadre" Storyboard.TargetProperty="(UIElement.RenderTransformOrigin)">
    				<SplinePointKeyFrame KeyTime="00:00:03" Value="0.5,0.5"/>
    			</PointAnimationUsingKeyFrames>
    			<DoubleAnimationUsingKeyFrames BeginTime="00:00:03" Storyboard.TargetName="Cadre" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">
    				<SplineDoubleKeyFrame KeyTime="00:00:00" Value="0"/>
    				<SplineDoubleKeyFrame KeyTime="00:00:03" Value="-1"/>
    			</DoubleAnimationUsingKeyFrames>
    		</Storyboard>
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                    Storyboard sb = (Storyboard)FindResource("FlipAnim");
                    sb.Begin(this);
                    // CODE
    L'animation est faite en une fois. Ton code est lancé après, il va s'exécuter en même temps que l'animation quoi qu'il arrive...

    A moins bien sûr d'utiliser un timer qui exécutera le code qu'après le temps de la première anim. C'est peut-être là la solution

  12. #12
    Membre éclairé Avatar de Gregory.M
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 684
    Par défaut
    Ok cool merci

  13. #13
    Membre éclairé Avatar de Gregory.M
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 684
    Par défaut
    Cependant j'ai un soucis du meme genre en ce moment.

    J'ai une animation sur l'événement "Closing" d'une window.

    Et l'animation n'est pas visible car le fermeture s'effectue casiment instentanement.

    N'y a t'il pas une méthose qui exsite pour bloquer le programme?
    Il me semble avoir déja utiliser cela?

Discussions similaires

  1. Compatibilité du code entre navigateurs
    Par solp dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 12/04/2006, 16h30
  2. [VBA] Code entre forms
    Par Virgile59 dans le forum Access
    Réponses: 3
    Dernier message: 28/12/2005, 21h57
  3. reprendre un enchainement de code entre deux formulaires.
    Par scully2501 dans le forum Access
    Réponses: 2
    Dernier message: 05/10/2005, 16h11
  4. [VB.NET] Comment ecrire du code entre <title>
    Par ykane dans le forum ASP.NET
    Réponses: 5
    Dernier message: 10/05/2004, 16h58
  5. Réponses: 3
    Dernier message: 11/04/2004, 01h05

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