在显示对话框时“调暗”winform背景的最佳方法是什么?

时间:2010-03-29 19:05:34

标签: c# .net winforms user-interface

我想在我的应用程序中实现一个功能,其中显示了一个用户对话框,以及主窗体(similar to how jQuery looks)。我唯一的想法是获取表单的屏幕截图,将其作为面板的背景(具有我不喜欢的不透明度),然后将面板推到表单上的所有内容上。我不得不相信有更好的方法可以做到这一点,有什么建议吗?

3 个答案:

答案 0 :(得分:11)

不透明度属性是您需要“调暗”表单的内容。您需要创建一个叠加层,this thread中的代码显示了如何执行此操作。

小心不要让程序看起来像是显示UAC提示符。虽然可能适用于浏览器,但用户在识别由对话框覆盖的窗口被禁用时将永远不会有任何问题。控制自己的绘画方式不同,以使其清晰。

答案 1 :(得分:2)

为什么不在启动模态对话框之前将不透明度设置为父窗口的50%,然后在取消模式对话框时将其设置为100%?这并不是您要求为最终用户提供相同功能的。

如果您确实想要执行类似JQuery示例的操作,您确实必须将屏幕上限/扩充/设置作为您描述的背景构思。

答案 2 :(得分:0)

我知道这是一个老线程,但如果仍然感兴趣,你可以看看这个项目。

Download Project