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] Comment réaliser un slide latéral d'une PopUp ?


Sujet :

Windows Presentation Foundation

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 21
    Points : 22
    Points
    22
    Par défaut [Animation] Comment réaliser un slide latéral d'une PopUp ?
    Boujour tout le monde.

    Je cherche à faire apparaitre une popup à droite de mon controle avec une animation de type "slide".
    Le problème, c'est qu'en utilisant l'animation par defaut, la popup glisse du haut vers le bas, alors que je voudrais la faire apparaitre de la gauche vers la droite.

    Des idées?

    En attendant, voici un bout de code qui montre bien le pb.

    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
    <Page>
     xmlns=http://schemas.microsoft.com/winfx/2...l/presentation
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Grid>
       <ToggleButton FontSize="20" Name="MyToggleBtn"
        Width="100" Height="100">Le bouton
    </ToggleButton>
       <Popup Height="{Binding ElementName=MyToggleBtn, Path=ActualHeight}"
         Width="100"
         IsOpen="{Binding ElementName=MyToggleBtn, Path=IsChecked}"
         PlacementTarget="{Binding ElementName=MyToggleBtn}"
         Placement="Right"
         PopupAnimation="Slide"
         AllowsTransparency="True">
            <Border BorderBrush="Black" BorderThickness="1" CornerRadius="5">
              <TextBlock TextWrapping="Wrap" FontSize="20">La popup
             </TextBlock>
           </Border>
      </Popup>
     </Grid>
    </Page>


    Merci pour votre aide

  2. #2
    Membre émérite
    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 : 36
    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
    Points : 2 265
    Points
    2 265
    Par défaut
    Vu l'animation que tu veux faire, soit il faut la coder, soit (pour les flemmards comme moi) utiliser une librairie qui intègre déjà cette animation

    Il y en a deux qui sont listées dans ce post et qui pourraient t'aider.
    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 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 laedit Voir le message
    Vu l'animation que tu veux faire, soit il faut la coder, soit (pour les flemmards comme moi) utiliser une librairie qui intègre déjà cette animation

    Il y en a deux qui sont listées dans ce post et qui pourraient t'aider.
    "flemmards", j'ai envie de dire que c'est comme ça qu'il faut procéder
    Pourquoi redévelopper ce qui existe déjà !

    Après est-ce que tes animations proposés en lien répondent à la question... en fait je n'ai pas regardé

    Mais pour le coup c'est pas trop compliqué :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
      <Grid>
        <ToggleButton FontSize="20" Name="MyToggleBtn"
        Width="100" Height="100" Content="Le bouton" >
          <ToggleButton.Triggers>
            <EventTrigger RoutedEvent="ToggleButton.Checked">
              <BeginStoryboard>
                <Storyboard>
                  <DoubleAnimation 
                    Storyboard.TargetName="popupTransform"
                    Storyboard.TargetProperty="(ScaleTransform.ScaleX)" 
                    From="0" To="1" Duration="0:0:0.7" AutoReverse="False"/>
                </Storyboard>
              </BeginStoryboard>
            </EventTrigger>
          </ToggleButton.Triggers>
        </ToggleButton>
        <Popup Height="{Binding ElementName=MyToggleBtn, Path=ActualHeight}"
               Width="100"
               IsOpen="{Binding ElementName=MyToggleBtn, Path=IsChecked}"
               PlacementTarget="{Binding ElementName=MyToggleBtn}"
               Placement="Right"
               PopupAnimation="Slide"
               AllowsTransparency="True">
          <Border BorderBrush="Black" BorderThickness="1" CornerRadius="5">
            <Border.RenderTransform>
              <ScaleTransform x:Name="popupTransform" />
            </Border.RenderTransform>
            <TextBlock TextWrapping="Wrap" FontSize="20">La popup
            </TextBlock>
          </Border>
        </Popup>
      </Grid>

    Pour expliquer rapidement, il s'agit d'ajouter un StoryBoard sur l'évènement Checked du ToggleButton répondant au besoin de l'animation.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 21
    Points : 22
    Points
    22
    Par défaut
    Franchement, pour les vrai "flemmards" comme moi, il suffit de poser la question sur le forum et attendre que binoo donne la solution....

    Plus sérieusement, merci binoo pour ta réponse. Je suis pas encore très à l'aise avec les animations, et je savais pas trop par ou commencer.
    Je préfère quand même passer par un TranslateTransform qui est sensé m'offrir le rendu que je veux, mais c'est pas vraiment facile (surtout lorsqu'on ne peut pas présumer de la largeur de la popup...)
    Bref, j'ai pas encore fini, mais mon problème est tout de même résolu.

    Merci a vous

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/08/2009, 09h20
  2. Réponses: 0
    Dernier message: 16/03/2009, 14h48
  3. [Animation] Comment réaliser un effet de sortie sur un bouton ?
    Par ikeas dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 01/10/2008, 08h33
  4. JSP et XML: comment, après affichage de XML lancer une popup?
    Par Mistilli dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 12/06/2007, 16h22
  5. Réponses: 18
    Dernier message: 03/01/2006, 17h53

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