9

我想在标签上做一系列动画,例如,首先做从值 0 到 1 的不透明动画,反之亦然,并且只是在不透明动画结束时而不是在前景动画之前。我想在 XAML 代码中执行此操作,然后从 C# 代码开始和完成动画。哪种方法是最好和最有效的?

欢迎所有回复!

提前致谢。

4

1 回答 1

16

BeginTime最简单的方法是在具有合适和Duration属性的单个故事板中定义整个动画。这样,整个动画可以作为一个单元启动和停止,但您可以有不同的序列。

例如:

<Storyboard Duration="0:00:06">
    <DoubleAnimation Duration="0:0:4" Storyboard.TargetName="gear1RotateTransform" Storyboard.TargetProperty="Angle" From="-600" To="0"/>
    <DoubleAnimation Duration="0:0:4" Storyboard.TargetName="gear2RotateTransform" Storyboard.TargetProperty="Angle" From="600" To="0"/>
    <DoubleAnimation Duration="0:0:4" Storyboard.TargetName="gear3RotateTransform" Storyboard.TargetProperty="Angle" From="-600" To="0"/>
    <DoubleAnimation BeginTime="0:0:1" Duration="0:00:02" Storyboard.TargetName="firstLetter" Storyboard.TargetProperty="Opacity" From="0.0" To="1.0"/>
    <DoubleAnimation BeginTime="0:0:2" Duration="0:00:02" Storyboard.TargetName="secondLetter" Storyboard.TargetProperty="Opacity" From="0.0" To="1.0"/>
    <DoubleAnimation BeginTime="0:0:3" Duration="0:00:02" Storyboard.TargetName="thirdLetter" Storyboard.TargetProperty="Opacity" From="0.0" To="1.0"/>
    <DoubleAnimation BeginTime="0:0:4" Duration="0:00:02" Storyboard.TargetName="siteLink" Storyboard.TargetProperty="Opacity" From="0.0" To="1.0"/>
    <DoubleAnimation BeginTime="0:0:4" Duration="0:00:02" Storyboard.TargetName="siteLinkTop" Storyboard.TargetProperty="Opacity" From="0.0" To="1.0"/>
</Storyboard>

此情节提要在前 4 秒内更改了 3 个旋转变换的值,但firstLetter项目的不透明度直到一秒过去后才开始更改,并且仅运行 2 秒。和元素直到 4 秒后才改变其不透明度(齿轮旋转动画已完成)siteLinksiteLinkTop

于 2010-03-21T12:38:12.637 回答