我正在重写WPF的OnRender来绘制复杂的图形。这可能很少需要很长时间。我想向用户表明该应用程序没有崩溃,但“只是”需要很长时间才能呈现。
我该怎么做?在OnRender调用期间,似乎无法以任何方式修改UI。
答案 0 :(得分:0)
你正在谈论放置一个忙碌的指标"在你的绘画之上。
只需将半透明网格放在上面,然后写入" Loading ..." 而且你已经完成了。
将其可见性绑定到您在进入复杂渲染时更新一次的一些bool,并在完成后更新一次。
如果你想看动作,或者设置一个带有渐变背景的旋转椭圆。
答案 1 :(得分:0)
由于OnRender
方法将在UI线程上执行,因此您无法执行任何其他操作,例如在执行代码期间显示交互式ProgressBar
或响应用户输入。
你可以做的是弹出一个新窗口,该窗口在一个单独的线程中启动,并在开始绘制复杂图形之前显示这个窗口。
有关此问题的更多信息,请参阅以下类似问题中的答案。
Wait screen during rendering UIElement in WPF
OnRender
方法返回后,关闭临时“加载”窗口:
Can I stop WPF from executing UI actions out of the order in my code