2009-06-17 4 views
0

Supposons que j'ai les extraits de code XAML suivants, ma confusion est quelle est la signification de la valeur de Storyboard.TargetProperty? c'est-à-dire la signification de "(UIElement.RenderTransform). (TransformGroup.Children) [0]. (ScaleTransform.ScaleX)".Problème d'animation Silverlight

 <DoubleAnimationUsingKeyFrames Storyboard.TargetName="p1" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" BeginTime="00:00:00"> 
      <SplineDoubleKeyFrame KeyTime="00:00:00" Value="1"/> 
      <SplineDoubleKeyFrame KeyTime="00:00:00.2500000" Value="1"/> 
      <SplineDoubleKeyFrame KeyTime="00:00:00.5000000" Value="1"/> 
     </DoubleAnimationUsingKeyFrames> 

...

 <Path Height="2.75" Width="2.75" Data="M2.75,1.375 C2.75,2.1343915 2.1343915,2.75 1.375,2.75 C0.61560845,2.75 0,2.1343915 0,1.375 C0,0.61560845 0.61560845,0 1.375,0 C2.1343915,0 2.75,0.61560845 2.75,1.375 z" Fill="#FF9F9B9B" Stretch="Fill" Stroke="#FF000000" StrokeThickness="0" Canvas.Left="7" Canvas.Top="14" x:Name="p1"> 
      <Path.RenderTransform> 
       <TransformGroup> 
        <ScaleTransform/> 
        <SkewTransform/> 
        <RotateTransform/> 
        <TranslateTransform/> 
       </TransformGroup> 
      </Path.RenderTransform> 
     </Path> 

merci à l'avance, George

Répondre

1

Le Storyboard.TargetProperty spécifie une propriété particulière à changer au fil du temps.

Si vous étiez en train d'écrire vous-même, vous pourriez dire quelque chose comme:

  <DoubleAnimationUsingKeyFrames Storyboard.TargetName="myRectange" 
Storyboard.TargetProperty="Width" BeginTime="00:00:00"> 
        <SplineDoubleKeyFrame KeyTime="00:00:00" Value="1"/> 
        <SplineDoubleKeyFrame KeyTime="00:00:00.2500000" Value="1"/> 
        <SplineDoubleKeyFrame KeyTime="00:00:00.5000000" Value="1"/> 
      </DoubleAnimationUsingKeyFrames> 

et simplifier les choses un peu. Dans l'exemple ci-dessus, vous modifiez la propriété "Width" de votre rectangle au fil du temps. Blend, dans son mode WYSIWYG infini, rend le ciblage un peu plus compliqué.

Dans votre exemple, une transformation est appliquée au rectangle et vous modifiez cette transformation au fil du temps.

Clarification: Storyboard.TargetProperty = ". (UIElement.RenderTransform) (TransformGroup.Children) [0] (ScaleTransform.ScaleX)" est un PropertyPath. Il spécifie la propriété qui sera modifiée au fil du temps. Dans cet exemple, nous visons la propriété Rectangle's-> RenderTransforms-> first child (ScaleTransform) -> Scale X. Voilà comment nous disons ce qui va changer. Les images clés spécifient comment cette valeur change au fil du temps.

Quelque chose à garder à l'esprit: Une transformation est un changement statique. Appliquez une ScaleX de 2, et la chose double dans la dimension X. Mais rien ne change au fil du temps (rien ne bouge sur l'écran). Pour cela, vous avez besoin d'une animation pour changer la transformation au fil du temps.

HTH, Erik

+0

En fait, ma confusion est quel élément " "(UIElement.RenderTransform). (TransformGroup.Children) [0]. (ScaleTransform.ScaleX)" fait référence à – George2

+0

? J'ai ajouté clarification. –