将连续动画应用于WPF中的Canvas

时间:2014-05-10 19:45:20

标签: c# wpf animation canvas

我想将连续的 FadeIn / FadeOut 动画应用于Canvas中的特定WPF

我可以执行 FadeOut 部分,但之后会立即执行 FadeIn 部分并废弃动画。

我也希望所有这些都能够顺利循环而不会干扰我的正常操作。

将其视为动画背景。

这样做的最佳方法是什么?我应该使用While吗?或者我应该使用Timer? ...

var duration = new Duration(TimeSpan.FromMilliseconds(1000));
var fadeOut = new DoubleAnimation(0.0, duration);
var fadeIn = new DoubleAnimation(1.0, duration);
MyCanvas.BeginAnimation(OpacityProperty, fadeOut);
MyCanvas.BeginAnimation(OpacityProperty, fadeIn);

1 个答案:

答案 0 :(得分:3)

您可以设置单个DoubleAnimation的AutoReverseRepeatBehavior属性以获得连续效果:

var fadeInOutAnimation = new DoubleAnimation
{
    From = 0,
    To = 1,
    Duration = TimeSpan.FromSeconds(1),
    AutoReverse = true,
    RepeatBehavior = RepeatBehavior.Forever,
};

MyCanvas.BeginAnimation(OpacityProperty, fadeInOutAnimation);

在您的方法中,您必须将第二个动画的BeginTime属性设置为第一个动画的Duration