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 :

Une seule Animation pour mes objets


Sujet :

Silverlight

  1. #1
    En attente de confirmation mail
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 338
    Points : 366
    Points
    366
    Par défaut Une seule Animation pour mes objets
    Bonjour,
    J'ai fait sur Blend une animation d'un textbox.
    J'ai donc un Storyboard propre au texbox (..Storyboard.TargetName="textBox"..)
    Si je place d'autre objet (label, autre textbox, button) comment leur attribuer cette même animation ?

    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
    39
    40
    41
    42
    43
    44
    45
    <Window
    	xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    	xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    	x:Class="UntitledProject15.Window1"
    	x:Name="Window"
    	Title="Window1"
    	Width="640" Height="480">
    	<Window.Resources>
    		<Storyboard x:Key="volet">
    			<PointAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="textBox" Storyboard.TargetProperty="(UIElement.RenderTransformOrigin)">
    				<SplinePointKeyFrame KeyTime="00:00:00" Value="0.5,0.4"/>
    				<SplinePointKeyFrame KeyTime="00:00:00.3000000" Value="0.7,0.4"/>
    			</PointAnimationUsingKeyFrames>
    			<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="textBox" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)">
    				<SplineDoubleKeyFrame KeyTime="00:00:00" Value="0"/>
    				<SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="8"/>
    			</DoubleAnimationUsingKeyFrames>
    			<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="textBox" Storyboard.TargetProperty="(UIElement.Opacity)">
    				<SplineDoubleKeyFrame KeyTime="00:00:00" Value="0"/>
    				<SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="1"/>
    			</DoubleAnimationUsingKeyFrames>
    		</Storyboard>
    	</Window.Resources>
    	<Window.Triggers>
    		<EventTrigger RoutedEvent="Control.MouseDoubleClick">
    			<BeginStoryboard Storyboard="{StaticResource volet}"/>
    		</EventTrigger>
    	</Window.Triggers>
     
    	<Grid x:Name="LayoutRoot">
    		<TextBox HorizontalAlignment="Left" Margin="123.804,101.232,0,0" VerticalAlignment="Top"
    		 Width="62.39" Height="23.061" Text="TextBox" TextWrapping="Wrap" RenderTransformOrigin="0.5,0.465" x:Name="textBox">
    			<TextBox.RenderTransform>
    				<TransformGroup>
    					<ScaleTransform ScaleX="1" ScaleY="1"/>
    					<SkewTransform AngleX="0" AngleY="0"/>
    					<RotateTransform Angle="0"/>
    					<TranslateTransform X="0" Y="0"/>
    				</TransformGroup>
    			</TextBox.RenderTransform>
     
    		</TextBox>
     
    	</Grid>
    </Window>
    Merci de votre aide

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 38
    Points : 39
    Points
    39
    Par défaut
    c'est une question intéressante ça si c'est possible...

    parce qu'une animation c'est la modification des propriétés d'un composant dans le temps, donc à priori lié à ce même composant.

    une piste... binder les éléments avec les autres composants

  3. #3
    En attente de confirmation mail
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 338
    Points : 366
    Points
    366
    Par défaut
    Ah donc c'est pas si évident que cela... je creuse depuis ce matin sur le net... aussi du coté de DataTemplate...

  4. #4
    Membre éprouvé Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Points : 998
    Points
    998
    Par défaut
    Hello,

    J'ai l'impression (je n'ai pas testé) que si tu ne met pas de targetName, l'animation s'appliquera à l'élément ou tu fais le beginStoryboard. Je pense que tu peux utiliser cela pour déclencher la même animation sur plusieurs éléments ?

    Source : http://msdn.microsoft.com/en-us/libr...argetname.aspx
    Citation Envoyé par MSDN
    Setting this property is optional. If the TargetName is not specified, a storyboard's animations are applied to one of the following:

    If the storyboard to which the animation belongs was started using a BeginStoryboard, the element that owns the BeginStoryboard action that triggers the storyboard is targeted.

    If the storyboard was started using the Begin method, the FrameworkElement or FrameworkContentElement specified when the storyboard was started with the Begin method is targeted.
    Sinon, y a des solutions (qui passe par le code pour lancer l'anim) sur le net :
    1. http://blogs.msdn.com/b/silverlight_...lverlight.aspx
    2. http://silverlightips.net/2010/06/27...n-silverlight/
    3. http://social.msdn.microsoft.com/For...c-d4988acc650b


    Bon courage !

  5. #5
    En attente de confirmation mail
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 338
    Points : 366
    Points
    366
    Par défaut
    Sans le TargetName ça n'a rien donné, mais j'ai du mal coder
    Mais avec tes liens je pense me débrouillé ! merci

  6. #6
    Membre émérite
    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
    Points : 2 682
    Points
    2 682
    Par défaut
    Bonjour,

    Le fait de mettre un storyboard coté XAML correspond à la création d'une instance.
    Tant que l'animation ne s'effectue pas sur plusieurs cibles en même temps (deux TexBoxs par exemple) on peut en changer sa propriété TargetName facilement coté CodeBehind tant que celui ci n'est pas actif.

    Si l'animation possède plusieurs cibles et que celle ci peut être lancée parallelement, il faut absolument plusieurs instances du Storyboard.
    Soit coté XAML, un storyboard par cible ou coté CodeBehind la création de Storyboard complet (par copy d'un storyboard de référence par exemple).

  7. #7
    Membre éprouvé Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Points : 998
    Points
    998
    Par défaut
    En bonus , un article qui décrit comment créer une animation depuis le code :http://blog.lexique-du-net.com/index...tion-FROM-CODE

    Bon courage !

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

Discussions similaires

  1. [WD-2000] une seule fonction pour plusieurs objets
    Par olivier.pz dans le forum VBA Word
    Réponses: 3
    Dernier message: 18/01/2011, 15h52
  2. [WPF-Blend] Plusieurs objets mais une seule animation
    Par Tuizi dans le forum Framework .NET
    Réponses: 12
    Dernier message: 11/12/2007, 18h10
  3. Réponses: 7
    Dernier message: 01/02/2006, 16h49
  4. [C#] Une seule méthode pour plusieurs composants
    Par niPrM dans le forum Windows Forms
    Réponses: 8
    Dernier message: 01/06/2004, 15h41
  5. Une seule anim compatible PC et Mac ?
    Par carlito dans le forum Flash
    Réponses: 7
    Dernier message: 18/12/2003, 18h11

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