2014-05-10 54 views
3

我已將以下FadeIn/FadeOut動畫應用於WPF中的Canvas在WPF動畫中重複之間暫停

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

MyCanvas.BeginAnimation(OpacityProperty, fadingInOutAnimation); 

現在我想讓它暫停1秒,當它達到動畫結束之前再次重複。

因此,它是這樣的:

Animation --- Pause (1 Sec) --- Animation --- Pause (1 Sec) and so on. 

回答

6

您可以添加一個故事板,做自動倒車和重複,但具有比動畫持續時間較長:

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

var storyboard = new Storyboard 
{ 
    Duration = TimeSpan.FromSeconds(2), 
    AutoReverse = true, 
    RepeatBehavior = RepeatBehavior.Forever 
}; 

Storyboard.SetTarget(fadeInOutAnimation, MyCanvas); 
Storyboard.SetTargetProperty(fadeInOutAnimation, 
          new PropertyPath(Canvas.OpacityProperty)); 

storyboard.Children.Add(fadeInOutAnimation); 
MyCanvas.BeginStoryboard(storyboard); 
+0

感謝克萊門斯,我一直都是從你那裏學到的。 – Vahid