我想将连续的 FadeIn/FadeOut 动画应用到 WPF
中的特定 Canvas
。
我可以执行 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);
最佳答案
您可以设置单个 DoubleAnimation 的 AutoReverse
和 RepeatBehavior
属性来获得连续效果:
var fadeInOutAnimation = new DoubleAnimation
{
From = 0,
To = 1,
Duration = TimeSpan.FromSeconds(1),
AutoReverse = true,
RepeatBehavior = RepeatBehavior.Forever,
};
MyCanvas.BeginAnimation(OpacityProperty, fadeInOutAnimation);
在您的方法中,您必须将第二个动画的 BeginTime
属性设置为第一个动画的 Duration
。
关于c# - 将连续动画应用到 WPF 中的 Canvas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23585548/