如何在WPF表单中显示渲染状态?

时间:2017-03-18 19:39:46

标签: wpf onrender

我正在重写WPF的OnRender来绘制复杂的图形。这可能很少需要很长时间。我想向用户表明该应用程序没有崩溃,但“只是”需要很长时间才能呈现。

我该怎么做?在OnRender调用期间,似乎无法以任何方式修改UI。

2 个答案:

答案 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