1

我正在尝试创建一个动画,在我的应用程序布局中跨画布移动一些图像。

画布被命名layout,属于主窗口,计时器正在调用事件Animation.Clouds(layout, 1)。尝试此操作时,我收到有关该对象由另一个线程拥有的错误。这让我相信原因是计时器无法传递 的上下文layout,从而导致错误。

我将如何解决此问题并传递layout给计时器以使动画正常工作?

4

2 回答 2

1

改用DispatcherTimer,它会在它创建的调度程序线程中触发一个滴答声

于 2012-11-26T16:11:29.910 回答
0

问题是您只能在 UI 线程上更新 UI 元素Timer 事件在不同的线程上被调用。

在 Windows.Forms 中,您可以使用BeginInvoke. 我确信 WPF 有类似的东西。

于 2012-11-26T16:12:29.183 回答