我试图WPF在动画完成时为一些东西设置动画并运行一些其他操作。
另外,想避免动画完成回调机制,所以,我想出了一个解决方案,如下面的代码所示:
// Start one second of animation
...
// Pause for one second
Wait(this.Dispatcher, 1000);
// Continue and do some other stuff
...
Run Code Online (Sandbox Code Playgroud)
现在,有趣的部分是Wait方法,它神奇地使我的代码中的阻塞暂停,但动画和 UI 保持正常、响应:
public static void Wait(Dispatcher Dispatcher, int Milliseconds)
{
var Frame = new DispatcherFrame();
ThreadPool.QueueUserWorkItem(State =>
{
Thread.Sleep(Milliseconds);
Frame.Continue = false;
});
Dispatcher.PushFrame(Frame);
}
Run Code Online (Sandbox Code Playgroud)
我已经阅读了有关文档和几篇文章,DispatcherFrame但我仍然无法弄清楚幕后真正发生了什么,我需要澄清一下这种结构是如何PushFrame真正起作用的。
| 归档时间: |
|
| 查看次数: |
2457 次 |
| 最近记录: |