2012-11-06 4 views
0

코드 8에서 내 Windows 8 응용 프로그램에 애니메이션을 적용하고 있습니다. 각각 DoubleAnimation을 포함하는 애니메이션 개체 모음이 있습니다. 이 콜렉션을 반복하는 메소드를 호출하고 각각에 대해 새로운 Storyboard 오브젝트를 작성하고 시작합니다. 스토리 보드에 BeginTime을 설정했는지 여부와 관계없이 모두 DoubleAnimation 또는 둘 다, 모두 동시에 시작하고 실행할 수 있습니다.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을 대상으로하는 Target이 이전 것보다 우선합니다. DoubleAnimationUsingKeyFrames을 사용하고 키 프레임을 기존 Storyboard에 추가하려면 대기열을 다시 설계했습니다. 모두 완벽하게 작동합니다!

관련 문제