2013-01-11 78 views
2

我有一個動畫分鐘滑動6度的故事板。現在我想讓分針永遠滑過每第59秒。故事板是否有任何屬性或者我可以做到的其他方式?如何定期播放動畫?

我的故事板

<Storyboard 
            x:Name="myStoryboard2"> 
            <DoubleAnimation 
             x:Name="minuteAnimation" 
             Storyboard.TargetName="minHandTransform" 
             Storyboard.TargetProperty="Angle" 
             Duration="0:0:1" 
             From="{Binding Time, Converter={StaticResource minuteHandTransform}}" 
             To="{Binding Time, Converter={StaticResource minuteHandTransform}}" 
             RepeatBehavior="1x"> 
             <DoubleAnimation.EasingFunction> 
              <SineEase 
               EasingMode="EaseOut" /> 
             </DoubleAnimation.EasingFunction> 
            </DoubleAnimation> 
           </Storyboard> 

回答

1

它聽起來並不像你想依靠一個動畫來管理的東西。只需管理從每分鐘後面的代碼開始動畫,就完成了。與使用神祕的轉換器來控制From/To值相比,這樣做要容易得多。像DoubleAnimation這樣的時間軸具有BeginTime屬性,但我已經看到並驗證了長時間的動畫持續時間(比如1分鐘或更長時間)在WinRT中遇到錯誤的報告。

EDIT *(碼樣本)

兩種簡單的方法我通常使用觸發的間隔的事件是使用具有回調事件或一個異步迴路DispatcherTimer。

1.   DispatcherTimer

var timer = new DispatcherTimer { Interval = TimeSpane.FromSeconds(1) }; 
timer.Tick += (s, e) => { /* do your stuff */ }; 
timer.Start(); 

2.  異步環

RunMyLoop(); 

private async void RunMyLoop() 
{ 
    while (true) 
    { 
     /* do your stuff */ 
     await Task.Delay(1000); 
    } 
} 
+0

我如何從每分鐘後面開始動畫?代碼只會在加載時執行一次?如果你不介意你可以剔出一些代碼嗎? – Bitsian

+0

非常感謝,會嘗試一下! – Bitsian

1

嘗試以下操作:

<Storyboard 
           x:Name="myStoryboard2"> 
           <DoubleAnimation 
            x:Name="minuteAnimation" 
            Storyboard.TargetName="minHandTransform" 
            Storyboard.TargetProperty="Angle" 
            Duration="0:0:59" 
            From="{Binding Time, Converter={StaticResource minuteHandTransform}}" 
            To="{Binding Time, Converter={StaticResource minuteHandTransform}}" 
            RepeatBehavior="Forever"> 
            <DoubleAnimation.EasingFunction> 
             <SineEase 
              EasingMode="EaseOut" /> 
            </DoubleAnimation.EasingFunction> 
           </DoubleAnimation> 
          </Storyboard> 
+0

犯規時間指示動畫應該多少時間玩,而不是什麼時候?而且我真的希望這隻手在1秒內順利滑動6度,這就是爲什麼我把持續時間設置爲1秒。任何想法我怎麼能做到這一點? – Bitsian