我想在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