Silverlight动画问题

时间:2009-06-17 16:56:15

标签: silverlight animation

假设我有以下XAML片段,我的混淆是Storyboard.TargetProperty的值是什么意思?即“(UIElement.RenderTransform)。(TransformGroup.Children)[0]。(ScaleTransform.ScaleX)”的意思。

        <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>
提前谢谢, 乔治

1 个答案:

答案 0 :(得分:1)

Storyboard.TargetProperty指定随时间变化的特定属性。

如果您是自己写的,可以说:

            <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>

并简化了一些事情。在上面的示例中,您将更改矩形的“宽度”属性。 Blend以其无限的所见即所得的方式,使得定位更加复杂。

在您的示例中,变换应用于矩形,并且您将随时间更改该变换。

澄清: Storyboard.TargetProperty = “(UIElement.RenderTransform)。(TransformGroup.Children)[0]。(ScaleTransform.ScaleX)” 是一个PropertyPath。它指定将随时间更改的属性。在这个例子中,我们的目标是Rectangle's-&gt; RenderTransforms-&gt;第一个孩子(ScaleTransform) - &gt; Scale X属性。这就是我们如何说明会发生什么变化。关键帧指定该值如何随时间变化。

要记住的事情:变换是一种静态变化。应用ScaleX为2,该事物在X维度中加倍。但是随着时间的推移没有任何变化(屏幕上没有任何动作)为此,您需要动画来随时间更改变换。

好的,Erik