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 :

Réaliser un zoom animé


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut Réaliser un zoom animé


    C'est encore moi.
    Le truc, c'est que je suppose que de nombreuses sources sont disponibles sur google, mais vu que je ne sais pas dutout comment ça s'appelle, je ne sais pas quoi chercher ...
    Donc,
    Je souhaite réaliser un effet : une sorte de ToolBar avec des icones et je voudrais qu'un zoom soit réalisé sur celles ci lors du passage de la souris (agrandissement de l'image sélectionnée et les autres autour qui se "poussent").
    - Je pensais utiliser tout d'abord un StackPanel mais du coup ma liste d'images n'est pas centrée ...
    - Ensuite, comment je peut réaliser cet effet à partir d'un Style contenu en resources ? (avec un DoubleAnimation je suppose, mais ça n'écarte pas le reste ..)

    Voilà, comment fais-je ?

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Je ne vois pas bien ce que tu veux dire avec l'histoire de la liste d'images qui n'est "pas centrée" ?
    Sinon, pour le style en ressource, ça donne quelque chose comme ça :
    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
        <Window.Resources>
            <Style x:Key="stlZoomButton" TargetType="Button">
                <Setter Property="Height" Value="30"/>
                <Setter Property="Width" Value="40"/>
                <Style.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="LayoutTransform">
                            <Setter.Value>
                                <ScaleTransform CenterX="20" CenterY="15" ScaleX="2.0" ScaleY="2.0" />
                            </Setter.Value>
                        </Setter>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </Window.Resources>

    Et pour l'appliquer :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <Button Style="{StaticResource stlZoomButton}"> ... </Button>

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Citation Envoyé par smyley Voir le message
    - Je pensais utiliser tout d'abord un StackPanel mais du coup ma liste d'images n'est pas centrée ...
    Bah, si tu centres ton StackPanel, les images seront centrées

    - Ensuite, comment je peut réaliser cet effet à partir d'un Style contenu en resources ? (avec un DoubleAnimation je suppose, mais ça n'écarte pas le reste ..)
    Le code de tomlev te donne le point de départ: propriété IsMouseOver, ScaleTransform. Après, il te faut une animation sur cette property: utilise Blend pour cela si besoin

  4. #4
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Michi bien , j'ai pondu ça (j'utilise pas Blend ... )
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
            <Style x:Key="ImageItemStyle" TargetType="{x:Type Image}">
                <Setter Property="LayoutTransform">
                    <Setter.Value>
                        <ScaleTransform ScaleX="1" ScaleY="1" x:Name="ZoomScale"/>
                    </Setter.Value>
                </Setter>
                <Style.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="Image.BitmapEffect">
                            <Setter.Value>
                                <OuterGlowBitmapEffect GlowColor="White" GlowSize="4"/>
                            </Setter.Value>
                        </Setter>
                        <Trigger.EnterActions>
                            <BeginStoryboard>
                                <Storyboard>
                                    <DoubleAnimation To="2" Duration="0:0:0.3"
                                                     Storyboard.TargetProperty="(Image.LayoutTransform).(ScaleTransform.ScaleX)">
     
                                    </DoubleAnimation>
                                    <DoubleAnimation To="2" Duration="0:0:0.3"
                                                     Storyboard.TargetProperty="(Image.LayoutTransform).(ScaleTransform.ScaleY)">
     
                                    </DoubleAnimation>
                                </Storyboard>
                            </BeginStoryboard>
                        </Trigger.EnterActions>
     
                        <Trigger.ExitActions>
                            <BeginStoryboard>
                                <Storyboard>
                                    <DoubleAnimation  To="1" Duration="0:0:0.3"
                                                     Storyboard.TargetProperty="(Image.LayoutTransform).(ScaleTransform.ScaleX)">
     
                                    </DoubleAnimation>
                                    <DoubleAnimation  To="1" Duration="0:0:0.3"
                                                     Storyboard.TargetProperty="(Image.LayoutTransform).(ScaleTransform.ScaleY)">
     
                                    </DoubleAnimation>
                                </Storyboard>
                            </BeginStoryboard>
                        </Trigger.ExitActions>
                    </Trigger>
                </Style.Triggers>
            </Style>

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

Discussions similaires

  1. Réalisation d'une animation flash
    Par cleminute dans le forum Flash
    Réponses: 5
    Dernier message: 08/06/2011, 15h50
  2. Créer un zoom animé d'un image
    Par debo41 dans le forum Débuter
    Réponses: 2
    Dernier message: 15/06/2009, 08h36
  3. [Rectangle] Comment y réaliser une Color Animation ?
    Par Anto03 dans le forum Windows Presentation Foundation
    Réponses: 8
    Dernier message: 30/09/2008, 15h24
  4. [DirectX] Réaliser un zoom sur une de mes surfaces
    Par Rodrigue dans le forum Développement 2D, 3D et Jeux
    Réponses: 2
    Dernier message: 26/03/2008, 20h00

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