-->

为什么我的MDI子窗体呈现出阴影?(Why aren't my MDI child form

2019-06-26 11:32发布

在我的应用程序时,我做一个形式,我的主要MDI父窗体的子窗体,子窗体停止投放背后的Windows 7的形式默认的阴影效果。 我如何获得孩子形成阴影,说明了什么?

Form obj = Application.OpenForms["My_form"];
if (obj != null)
{
    obj.Focus();
}
else
{
    My_form c = new My_form();
    c.MdiParent = this;
    c.Show();
}

Answer 1:

这是正常的,完全由设计。 MDI子窗口不是顶级窗口,而是一种特殊类型的设计在MDI父窗口被托管的子窗口 。

桌面窗口管理器(DWM),这是负责在Windows Vista和Windows 7的Aero效果,只会增加阴影和玻璃的透明度,以顶级窗口。 你的MDI子窗口不符合这种待遇。 事实上,阴影是不是他们唯一缺少的东西 - 他们看起来像他们正在使用的航空基本主题,这是使用Aero主题为一切在机器上漂亮的视觉不和谐绘制。

不幸的是,没有修复这个除了从MDI干脆把灯关掉。 在多文档界面已经非常不赞成现在反正。 这些接口提供了更多的人很难比原先预期的使用,他们已经陷入几乎完全不用,特别是微软自己的软件。 你会发现,而不是使用MDI,微软Office使用多个顶级窗口。 你或许应该考虑用自己的软件做同样的事情。

另一种流行的替代MDI是一个标签式界面,通过Web浏览器常用。 在这里,你有一个单一的,顶级窗口和所有的子窗口中显示为“标签”在这个主窗口的顶部。 用户可以在子窗口中更容易和更直观地切换为标签,而不是作为独立的MDI子。



Answer 2:

我得到了答案最后,如果我做一个形式子窗体像

c.MdiParent =this;

它使外观形态为平的,如果你喜欢展现形式,默认的Windows类似形式不使窗体的MDI父!



文章来源: Why aren't my MDI child forms showing a shadow?