0

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

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

4

2 回答 2

0

您正在谈论在绘图顶部放置“忙碌指示器”。

只需在顶部放置一个半透明的网格,上面写着“正在加载...”,你就完成了。

将其可见性绑定到您在进入复杂渲染时更新一次的布尔值,并在完成时更新一次。

或者如果你想看到运动,可以放一个带有渐变背景的旋转椭圆。

于 2017-03-19T05:30:07.330 回答
0

由于该OnRender方法将在 UI 线程上执行,因此您无法ProgressBar在代码执行期间执行任何其他操作,例如显示交互或响应用户输入。

您可以做的是弹出一个在单独线程中启动的新窗口,并在您开始绘制复杂图形之前显示该窗口。

有关此问题的更多信息,请参阅我在以下类似问题中的回答。

在 WPF 中呈现 UIElement 期间等待屏幕

OnRender方法返回后,关闭临时“加载”窗口:

我可以阻止 WPF 在我的代码中乱序执行 UI 操作吗

于 2017-03-20T16:34:52.840 回答