我正在尝试创建一个动画,在我的应用程序布局中在画布上移动一些图像。
画布名为layout
,属于主窗口,计时器正在调用事件Animation.Clouds(layout, 1)
。尝试此操作时,我收到有关该对象由另一个线程拥有的错误。这让我相信原因是计时器无法通过layout
的上下文,导致错误。
如何解决此问题并将layout
传递给计时器以使动画生效?
答案 0 :(得分:1)
使用DispatcherTimer代替,它会在创建的调度程序线程中触发一个勾号
答案 1 :(得分:0)
问题是,当您在UI线程上时,您可以仅更新UI元素。 Timer事件在另一个线程上调用。
在Windows.Forms中,您可以使用BeginInvoke
。我确信WPF有类似的东西。