Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在WPF中将连续动画应用于画布_C#_Wpf_Animation_Canvas - Fatal编程技术网

C# 在WPF中将连续动画应用于画布

C# 在WPF中将连续动画应用于画布,c#,wpf,animation,canvas,C#,Wpf,Animation,Canvas,我想对我的WPF中的特定Canvas应用连续的FadeIn/FadeOut动画 我可以做

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

我可以做
部分,但是
FadeIn
部分随后立即执行并破坏动画

我还希望所有这些都能顺利进行,不会干扰我的正常工作

将其视为动画背景

最好的方法是什么?我应该在使用
时使用
?或者我应该使用
计时器

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);

您可以设置单个双动画的
自动翻转
重复行为
属性,以获得连续效果:

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

MyCanvas.BeginAnimation(OpacityProperty, fadeInOutAnimation);


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

非常感谢Clemens,这正是我所需要的。它能在重复之前暂停1秒吗?我想不能,但是你可以玩一些轻松的功能,比如
EasingFunction=new}{EasingMode=EasingMode.EaseIn}
或者持续2秒。谢谢,我会尝试一下。