我有一個For..Each循環,它將循環遍歷所有網格的矩形並隨機更改它們的填充。我用彩色動畫改變填充。這裏是我的代碼:對於每個循環不睡眠
Dim rand as new random
Dim changeColor As New Animation.ColorAnimation
changeColor.Duration = TimeSpan.FromSeconds(0.5)
For Each r As Rectangle In Grid.Children
changeColor.From = ColorConverter.ConvertFromString(r.Fill.ToString)
Dim i As Integer = rand.Next(0, 2)
Select Case i
Case 0
changeColor.To = Colors.White
Case 1
changeColor.To = Colors.Gray
End Select
Animation.Storyboard.SetTarget(changeColor, r)
Animation.Storyboard.SetTargetProperty(changeColor, New PropertyPath("Fill.Color"))
Dim sb As New Animation.Storyboard
sb.Children.Add(changeColor)
sb.Begin()
System.Threading.Thread.Sleep(0.5)
Next
的問題是,循環不睡覺。我想觸發動畫,然後等待,直到矩形填充被改變,然後繼續其餘部分,但似乎所有的矩形填充都在同一時間改變。那麼我做錯了什麼?
它看起來像你讓主線睡覺。這意味着動畫可能甚至不會在thread.sleep完成之後纔開始。 –