假设我有以下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>
提前谢谢,
乔治
答案 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