2012-11-06 49 views
0

我在後臺代碼中爲Windows 8應用程序設置了一些動畫。我有一組動畫對象,每個都包含一個DoubleAnimation。我調用一個迭代這個集合的方法,爲每個對象創建新的對象並開始它們。無論我是在故事板上設置BeginTimeDoubleAnimation還是兩者,它們都會同時啓動並運行。當在WinRT/c中以編程方式設置時,BeginTime無法正常工作#

如何將動畫延遲一定的毫秒數?

foreach (AnimationObject a in queue) 
    { 
     Storyboard sb = new Storyboard(); 
     sb.Duration = a.DoubleAnimation.Duration; 
     sb.BeginTime = a.DoubleAnimation.BeginTime; 
     sb.Children.Add(a.DoubleAnimation); 
     Storyboard.SetTarget(a.DoubleAnimation, a.Target); 
     Storyboard.SetTargetProperty(a.animation, a.TargetProperty); 
     sb.Begin(); 
    } 

我寫了一個隊列,而不是它使用await Task.Delay(a.BeginTime)和這個作品,所以我知道我在正確設置的BeginTime。然而,任務延遲方法似乎並不高效

回答

0

我的問題是後面的Storyboard s瞄準相同的Target是覆蓋以前的。我重新設計了我的隊列,以便使用DoubleAnimationUsingKeyFrames「,並將關鍵幀添加到現有的Storyboard中。所有的工作現在完美!

相關問題