我想做的是在标记为 mdi 容器的表格上画一些玻璃。但是,一旦设置了 IsMdiContainer,表单就会将 MdiClient 添加到其控件列表中。此时,父窗体发生了一些情况 - 几乎就像一个深灰色面板停靠在 MdiClient 所在的整个窗体上。
然后,我执行以下操作,将 MdiClient 控件移开一点:
foreach(var c in Controls)
{
if(c is MdiClient)
{
var client = (MdiClient)c;
client.BackColor = Color.Red;
client.Dock = DockStyle.None;
client.Size = new Size(this.Width-100, this.Height);
break;
}
}
这使得实际的 MdiClient 区域变小,这样我们就可以看到它后面的内容(托管子窗体的位),并且很明显父窗体没有绘画或其他东西。
从这里可以看出:http://img525.imageshack.us/img525/8605/mdiglassproblem.png
我现在需要以某种方式让 MdiClient 后面的区域(深灰色部分,在玻璃部分呈现白色)消失。
有任何想法吗?
PS - 在 Vista 中,玻璃是使用 DwmExtendFrameIntoClientArea 方法渲染的。
我想这已经足够完美了。
foreach (Control ctrl in this.Controls)
{
if (ctrl is MdiClient)
{
ctrl.BackColor = Color.LightGray;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)