Silverlight中的动画使用动态值

时间:2009-12-11 14:09:44

标签: silverlight xaml animation keyframe

我想在Silverlight中将其Y轴上的对象随时间转换,但它的高度不是常数,所以我希望能够改变以下第二行:

<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="ExpandSite" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)">
    <EasingDoubleKeyFrame KeyTime="00:00:00"  Value="-50"/>
    <EasingDoubleKeyFrame KeyTime="00:00:00.7000000" Value="0"/>
</DoubleAnimationUsingKeyFrames>

更像是:

<EasingDoubleKeyFrame KeyTime="00:00:00"  Value="-100%"/>

或可能:

<EasingDoubleKeyFrame KeyTime="00:00:00"  Value="-{ExpandSite Height}"/>

然而,这不会编译。我很感激任何帮助。我正在使用Expression Blend 3作为参考。

修改

我基本上想要达到类似于演示here的效果,但是这段代码理所当然地认为所有被翻译的对象都是100x100。

1 个答案:

答案 0 :(得分:0)

This文章描述了关键帧元素不从框架元素继承。因此,您无法对其属性进行数据绑定,并且必须对后面的代码进行更改。

您可以找到如何创建代码隐藏动画here的示例。但是,请注意示例代码中存在错误。代码缺少像dd.KeyFrames.Add(easy)这样的行。另一方面,如果给它一个x:Name并且只引用数组元素(animation.children[0].KeyFrames[0].Value可能有效),你很可能会访问动画。

修改 我在this网站上发现了另一个帖子,确实可以解决你想要做的事情,但我自己没有尝试过。