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 :

Animation d'un ChildWindow


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 20
    Par défaut Animation d'un ChildWindow
    Bonjour,


    Je commence à me mettre en Silverlight, assez simple à comprendre dans l'ensemble mais le problème c'est au niveau des animations....

    Je souhaiterais instancier un ChildWindow (jusque là ca va !) qui contient diverses informations (Nom, prénom, ...) et là ca se complique lors d'un clic sur un bouton, je voudrais que la fenêtre face une rotation sur elle-même (recto-verso) et afficher une image (celle de la personne par exemple).

    Est-ce possible ? Si oui une petite aide serait le bienvenue car je luttes !!


    Cordialement,
    Xavier

  2. #2
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Bonjour,

    oui c'est possible.

    il suffit de regarder le code ici pour l'animation.
    L'animation doit être injectée dans un VisualState Open (si mes souvenirs sont bons) du template de ton ChildWindow. Pour redefinir facilement un template de ChildWindow regarde du coté de Blend.

    Sinon il me semble que dans le template Business application de VS2010, la fenetre du login fait exactement ce que tu veux.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 20
    Par défaut
    Citation Envoyé par Samoteph Voir le message
    oui c'est possible.

    il suffit de regarder le code ici pour l'animation.
    L'animation doit être injecté dans un VisualState Open (si mes souvenirs sont bons) du template de ton ChildWindow. Pour redefinir facilement un template de ChildWindow regarde du coté de Blend.

    sinon il me semble que dans le template Business application de VS2010, la fenetre du login fait exactement ce que tu veux.
    Ahhh merci je vais essayer ton code, je te tiens au courant !!!


    Edit : Je viens d'essayer ca fonctionne très bien mais c'est un composant qu'on rajoute sur le ChildWindow, est-ce possible de te faire directement sur le ChildWindow ?

    J'ai essayé de changer implémentation ContentControl en ChildWindow mais je n'obtiens pas le résultat voulu...une idée ?

    Cordialement,
    Xavier

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Citation Envoyé par Samoteph Voir le message
    Sinon il me semble que dans le template Business application de VS2010, la fenetre du login fait exactement ce que tu veux.
    Je ne crois pas avoir vu ca dans le template de projet

    Mais bon, ca a peut-être changé

  5. #5
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    xavier,

    Je viens d'essayer ca fonctionne très bien mais c'est un composant qu'on rajoute sur le ChildWindow, est-ce possible de te faire directement sur le ChildWindow ?
    Ce lien te permet juste de voir comment injecter une animation dans ton control.

    Pour le ChildWindow :
    L'animation doit être injectée dans un VisualState Open (si mes souvenirs sont bons) du template de ton ChildWindow. Pour redefinir facilement un template de ChildWindow regarde du coté de Blend.
    Si tu veux voir un exemple rend-toi sur le template Business Application pour Silverlight de VS2010

    Pour Thomas :
    Je ne crois pas avoir vu ca dans le template de projet
    Mais bon, ca a peut-être changé
    Quand tu cliques sur le "Register Now" de la fenetre Login il me semble

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 20
    Par défaut
    Merci pour l'aide mais j'abandonne...c'est pas de mon niveau je pense.

    Cordialement,
    Xavier

  7. #7
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Excuse moi Xavier mais je crois t'avoir orienté sur une mauvaise piste. Pour le VisualState à Open tout du moins (j'ai mélangé avec un autre Post je crois)

    L'animation doit être injectée dans un VisualState Open (si mes souvenirs sont bons) du template de ton ChildWindow. Pour redefinir facilement un template de ChildWindow regarde du coté de Blend.
    Pour me faire pardonner voici un début de solution :

    Tu dois créer un nouvel item de type ChildWindow que tu appelles ChildWindow1. ci-joint le code XAML de ChildWindow1.

    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
     
    <controls:ChildWindow x:Class="SilverlightHtmlFrame.ChildWindow1"
               xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
               xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
               xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
               Width="400" Height="300" 
               Title="ChildWindow1"
               x:Name="MaChildWindow"
                >
        <controls:ChildWindow.Resources>
            <Storyboard x:Name="Storyboard1" SpeedRatio="3">
                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="MaChildWindow" Storyboard.TargetProperty="(UIElement.Projection).(PlaneProjection.RotationY)">
                    <EasingDoubleKeyFrame KeyTime="00:00:01" Value="-90"/>
                    <EasingDoubleKeyFrame KeyTime="00:00:02" Value="-180"/>
                </DoubleAnimationUsingKeyFrames>
                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="MaChildWindow" Storyboard.TargetProperty="(ChildWindow.OverlayOpacity)">
                    <EasingDoubleKeyFrame KeyTime="00:00:00.2000000" Value="0"/>
                    <EasingDoubleKeyFrame KeyTime="00:00:01.7000000" Value="0"/>
                    <EasingDoubleKeyFrame KeyTime="00:00:02" Value="1"/>
                </DoubleAnimationUsingKeyFrames>
            </Storyboard>
        </controls:ChildWindow.Resources>
     
        <controls:ChildWindow.Projection>
            <PlaneProjection/>
        </controls:ChildWindow.Projection>
     
        <Grid x:Name="LayoutRoot" Margin="2">
     
            <Grid.RowDefinitions>
                <RowDefinition />
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>
     
            <Button x:Name="CancelButton" Content="Cancel" Click="CancelButton_Click" Width="75" Height="23" HorizontalAlignment="Right" Margin="0,12,0,0" Grid.Row="1" />
            <Button x:Name="OKButton" Content="OK" Click="OKButton_Click" Width="75" Height="23" HorizontalAlignment="Right" Margin="0,12,79,0" Grid.Row="1"/>
        </Grid>
    </controls:ChildWindow>
    puis je me suis abonné à l'evenement Click sur le bouton OK dans le .cs pour lancer l'animation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            private void OKButton_Click(object sender, RoutedEventArgs e)
            {
                //this.DialogResult = true;
                this.Storyboard1.Begin();
            }
    J'ai un peu triché avec le fond car il est contenu dans la translation et c'est pas joli. Alors je l'ai opacifié à 0 pendant l'animation.

    En espérant que cela t'aidera !

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

Discussions similaires

  1. comment integer une animation swf dans une page
    Par naili dans le forum Intégration
    Réponses: 7
    Dernier message: 18/09/2002, 18h54
  2. Comment ne pas rejouer une animation après un clic ?
    Par mmmmhhh dans le forum ActionScript 1 & ActionScript 2
    Réponses: 4
    Dernier message: 04/09/2002, 16h11
  3. [Composants][Animation] Lire une vidéo compressée
    Par femtosa dans le forum Composants VCL
    Réponses: 6
    Dernier message: 03/09/2002, 08h03
  4. Rx Controls Gif animés
    Par toufou dans le forum Composants VCL
    Réponses: 6
    Dernier message: 23/08/2002, 14h09
  5. Passage de parametre a une anim Flash 5
    Par debug dans le forum Intégration
    Réponses: 4
    Dernier message: 03/06/2002, 17h59

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