【问题标题】:XAML C# WPF Best efficient way to do an ordered sequence of animationsXAML C# WPF 执行有序动画序列的最佳有效方法
【发布时间】:2011-01-30 00:11:42
【问题描述】:

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

欢迎所有回复!

提前致谢。

【问题讨论】:

    标签: wpf xaml animation storyboard


    【解决方案1】:

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

    例如:

    <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 秒。 siteLinksiteLinkTop 元素的不透明度直到 4 秒后才改变(齿轮旋转动画完成)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-29
      • 1970-01-01
      • 2011-04-20
      • 2013-11-15
      • 2018-01-07
      • 2012-03-29
      • 1970-01-01
      • 2021-12-03
      相关资源
      最近更新 更多