我正在重写 WPF 的 OnRender 来绘制复杂的图形。这可能很少需要很长时间。我想向用户表明该应用程序没有崩溃,但“只是”需要很长时间才能呈现。
我该怎么做?在 OnRender 调用期间似乎无法以任何方式修改 UI。
您正在谈论在绘图顶部放置“忙碌指示器”。
只需在顶部放置一个半透明的网格,上面写着“正在加载...”,你就完成了。
将其可见性绑定到您在进入复杂渲染时更新一次的布尔值,并在完成时更新一次。
或者如果你想看到运动,可以放一个带有渐变背景的旋转椭圆。
由于该OnRender
方法将在 UI 线程上执行,因此您无法ProgressBar
在代码执行期间执行任何其他操作,例如显示交互或响应用户输入。
您可以做的是弹出一个在单独线程中启动的新窗口,并在您开始绘制复杂图形之前显示该窗口。
有关此问题的更多信息,请参阅我在以下类似问题中的回答。
OnRender
方法返回后,关闭临时“加载”窗口: