我想在Y軸上做一個System.Windows.Shapes.Rectangle旋轉模擬卡片旋轉,顯示所有的路線。UI刷新循環Dispatcher.BeginInvoke
問題是UI只在最後刷新。
簡化代碼版本
方法的調用
for (i=0; i<=180; i++)
{
int j = i;
Dispatcher.BeginInvoke(new a_dispatcher(() => {
print_animation_of_card(card, i);
}),
null);
}
方法
private void print_animation_of_card(System.Windows.Shapes.Rectangle card)
{
...
System.Windows.Media.PlaneProjection p =
card.Projection as System.Windows.Media.PlaneProjection;
p.RotationY = i;
card.Projection = p;
}
我也試圖把換入的方法,同結果...
我該如何顯示System.Windows.Shapes.Rectangle的所有旋轉運動?
我使用Silverlight的工作,所以invoke()方法不可用...... 我試圖把循環在Dispatcher.BeginInvoke()中,但沒有結果,我已經通過將Dispatcher.BeginInvoke()放入Backgroundworker中來實現它,但是我寧願在沒有多線程的情況下工作... – 2013-05-09 17:15:42
@Korbert如果你不是在'BackgroundWorker'開頭,那爲什麼要使用'Dispatcher.BeginInvoke()'呢?你應該可以直接操作卡片'矩形'。 – Jay 2013-05-09 18:20:09
是的,但我想向用戶顯示所有的矩形旋轉動畫。如果我通常沒有調度員,我只會看到最後的位置。我以爲我可以用Dispatcher.BeginInvoke()顯示所有的動作,我錯了嗎? – 2013-05-10 07:33:26