0

我想在 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,供参考。

编辑

我基本上想实现类似于这里演示的效果,但是这段代码理所当然地认为所有正在翻译的对象都是 100x100。

4

1 回答 1

0

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

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

编辑我在这个网站 上发现了另一个线程,它确实为您尝试做的事情提供了可能的解决方法,但是我自己没有尝试过。

于 2009-12-14T15:34:25.690 回答