我想在标签上做一系列动画,例如,首先做从值 0 到 1 的不透明动画,反之亦然,并且只是在不透明动画结束时而不是在前景动画之前。我想在 XAML 代码中执行此操作,然后从 C# 代码开始和完成动画。哪种方法是最好和最有效的?
欢迎所有回复!
提前致谢。
我想在标签上做一系列动画,例如,首先做从值 0 到 1 的不透明动画,反之亦然,并且只是在不透明动画结束时而不是在前景动画之前。我想在 XAML 代码中执行此操作,然后从 C# 代码开始和完成动画。哪种方法是最好和最有效的?
欢迎所有回复!
提前致谢。
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 秒后才改变其不透明度(齿轮旋转动画已完成)siteLink
。siteLinkTop