如何在所有控件上显示图层

时间:2009-12-15 14:11:06

标签: wpf

我有Window打开无边距Dialog,您可以在其中选择一些选项。设置选项后,Dialog会关闭,主Window会再次启用。不太难。

但是由于选项屏幕中的选项已更改,我需要刷新主窗口并防止在刷新之前进行更改。

所以现在我想在中间添加一个ProgressBar的额外图层来通知用户:please wait, we are refreshing

围绕这个最佳做法是什么?

2 个答案:

答案 0 :(得分:5)

您可以查看一下Adorners(MSDN link),它允许您将渲染表面粘贴在其他UI元素之上。这将允许您现有的控件不知道刷新阶段,并允许在Adorner中包含进度可视化以及显示/隐藏Adorner层所需的代码块

答案 1 :(得分:1)

我刚刚了解了Popup原语控件。它不是模态的,但它确实覆盖了屏幕上的其他控件。

假设您可以打开一个覆盖整个窗口的弹出窗口(如果用户移动窗口,则必须移动它),该窗口具有透明背景,其中的不透明居中面板显示您的等待消息。在弹出窗口中添加有色透明背景,以获得暗淡的UI体验。