我想要做的是在標記爲mdi容器的窗體上繪製一些玻璃。但是,只要設置了IsMdiContainer,表單就會將MdiClient添加到它的控件列表中。在這一點上,父窗體發生了一些事情 - 幾乎就像一個深灰色的面板被停靠在MdiClient所在的整個窗體上。如何刪除MDI父窗體上的灰色背景?
我那麼做的是以下移動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方法呈現玻璃。
只是一個側面說明; 「if(c是MdiClient)」行是多餘的。 'as'操作符執行相同的檢查,如果它爲假,則返回null。所以,只需使用'as'運算符,然後檢查是否爲null。 – 2009-07-27 20:39:02