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 :

[Animation] Créer un bandeau de texte déroulant


Sujet :

Windows Presentation Foundation

  1. #1
    Membre averti 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
    Points : 309
    Points
    309
    Par défaut [Animation] Créer un bandeau de texte déroulant
    Bonjour,


    Je souhaiterai créer une petite animation permettant de faire dérouler une chaine de caractères de gauche vers la droite. En gros ca donnerai une phrase qui arriverai de la droite de la fenetre et qui disparaitrai par la gauche.

    Je voulais vous demander quel control je devais utiliser pour faire cela? un textbox?label?

    Puis comment dois-je m'y prendre pour créer cette animation?


    Merci de votre aide

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Une ListBox/ScrollViewer, ca semble correspondre parfaitement à ton besoin

  3. #3
    Membre averti 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
    Points : 309
    Points
    309
    Par défaut
    Citation Envoyé par Thomas Lebrun Voir le message
    Une ListBox/ScrollViewer, ca semble correspondre parfaitement à ton besoin
    ah oui je n'y avais pas pensé.

    Quelqu'un aurait un lien qui expliquerait comment créer une animation sur le déplacement des listboxitems pour que ce soit un déplacement fluide plutôt que accoup par accoup .

  4. #4
    AP
    AP est déconnecté
    Membre confirmé
    Avatar de AP
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2002
    Messages : 480
    Points : 538
    Points
    538
    Par défaut
    http://www.codeproject.com/KB/edit/d...gtextctrl.aspx

    sinon en cherchant un peut sur internet, tu dois pouvoir en trouver d'autres.
    (ca reste simple, tu hérites de control, tu ajoutes un timer et sur el onpaint tu dessines ton text avec un drawstring (en décalant le x à chaque fois)

  5. #5
    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
    Points : 3 015
    Points
    3 015
    Par défaut
    Citation Envoyé par AP Voir le message
    http://www.codeproject.com/KB/edit/d...gtextctrl.aspx

    sinon en cherchant un peut sur internet, tu dois pouvoir en trouver d'autres.
    (ca reste simple, tu hérites de control, tu ajoutes un timer et sur el onpaint tu dessines ton text avec un drawstring (en décalant le x à chaque fois)
    En WPF, il y a d'autres solutions comme les StoryBoard qui permettent de jouer des animations et qui sont plus simples encore à mettre en place car conçues pour ça.

    Et il y a même la possibilité de Thomas qui est originale au passage

  6. #6
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Regarde ici: http://blogs.msdn.com/delay/archive/...ollviewer.aspx

    C'est pour du Silverlight mais le code devrait etre le même

  7. #7
    Membre averti 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
    Points : 309
    Points
    309
    Par défaut
    Bonjour,


    J'ai décidé d'utiliser une listbox et de modifier l'item template en y mettant des textblocks.


    sur cette listbox j'ai mit sa scrollbar en invisble.

    Je me demandais par contre comment simuler un mouvement de la scrollbar pour créer une effet de mouvement des listboxitems.

    J'imagine que je drois créer une ou deux storyboard.

    pouvez vous me donner des pistes pour réussir à faire cela.



    Merci de votre aide

  8. #8
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Plus simplement: avec un Timer et dans l'event Tick, tu fait le scroll de ta ListBox

  9. #9
    Membre habitué Avatar de Thrud
    Profil pro
    Développeur .NET
    Inscrit en
    Avril 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Avril 2008
    Messages : 170
    Points : 183
    Points
    183
    Par défaut
    Bonjour,

    avec blend, ça m'a bien pris 3 minutes à faire ça (à mettre dans une "window1" d'un projet de base)

    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
     
    <Window.Resources>
            <Storyboard x:Key="OnLoaded1">
                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="textBlock" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)">
                    <SplineDoubleKeyFrame KeyTime="00:00:05" Value="-866"/>
                </DoubleAnimationUsingKeyFrames>
            </Storyboard>
        </Window.Resources>
        <Window.Triggers>
            <EventTrigger RoutedEvent="FrameworkElement.Loaded">
                <BeginStoryboard Storyboard="{StaticResource OnLoaded1}" x:Name="OnLoaded1_BeginStoryboard"/>
            </EventTrigger>
        </Window.Triggers>
     
        <Grid x:Name="LayoutRoot">
            <TextBlock HorizontalAlignment="Right" Margin="0,112,-219,0" VerticalAlignment="Top" Width="216" Height="19" TextWrapping="Wrap" RenderTransformOrigin="0.5,0.5" x:Name="textBlock">
                <TextBlock.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform ScaleX="1" ScaleY="1"/>
                        <SkewTransform AngleX="0" AngleY="0"/>
                        <RotateTransform Angle="0"/>
                        <TranslateTransform X="0" Y="0"/>
                    </TransformGroup>
                </TextBlock.RenderTransform><Run Language="fr-fr" Text="TextBlock avec du texte qui va défiler"/></TextBlock>
        </Grid>
    donc avec un TextBlock et un StoryBoard, ça marche plutôt pas mal. Le plus compliqué, ça serait de mettre en paramètre de l'anim la taille du TextBlock pour savoir jusqu'où le décaler sur la gauche. (et de nettoyer tout ce qui ne sert à rien dans le code généré par blend ).

    ça t'évite au moins d'avoir à t'ennuyer avec un timer, puisque le StoryBoard le fait pour toi.

  10. #10
    Membre averti 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
    Points : 309
    Points
    309
    Par défaut
    Comment puis je binder mon textbox rendersize dans ma storyboard?

    je sais le faire dans des controls mais cela est il possible dans une storyboard?


    Merci

  11. #11
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut
    moi j'ai rajouter ca dans le constructeur
    mais evidement ca serait mieux de binder sur un multi binding de
    fenetre.width et textblock.width
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            public Window1()
            {
                InitializeComponent();
                Storyboard x = this.Resources["OnLoaded1"] as Storyboard;
                DoubleAnimationUsingKeyFrames c = x.Children[0] as DoubleAnimationUsingKeyFrames;
                SplineDoubleKeyFrame d = c.KeyFrames[0] as SplineDoubleKeyFrame;
                d.Value = -(this.Width + this.textBlock.Width);
            }
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

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

Discussions similaires

  1. Créer texte déroulant transparent
    Par popochen dans le forum Flash
    Réponses: 1
    Dernier message: 02/09/2007, 20h40
  2. créer un bandeau déroulant
    Par delas dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/09/2006, 11h55
  3. Comment créer un bouton FICHIER(liste déroulante)
    Par vantoff dans le forum C++Builder
    Réponses: 10
    Dernier message: 20/07/2006, 09h08
  4. créer une barre de navigation déroulante aide
    Par max45 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 28/11/2005, 20h57
  5. Réponses: 7
    Dernier message: 13/12/2003, 14h09

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