我想讓我的UserControl的BackGround看起來不在那裏。我試圖做這樣的:如何使用戶控件的背景透明?
if ((Parent != null) && (Parent.BackgroundImage != null))
{
Bitmap backGroundImage = new Bitmap(Width, Height);
Graphics.FromImage(backGroundImage).DrawImage(owner.BackgroundImage, 0, 0, new Rectangle(Location.X, Location.Y, Width, Height), GraphicsUnit.Pixel);
this.BackgroundImage = (Image)backGroundImage;
}
和它的作品,但我也必須計算每一次這是用戶控件的父窗體的的BackgroundImage其大小的變化,並設置窗體的BackGroundImageLayout無法比擬的。我的UserControl可以接受Parent的BackGroundImage,並在每次需要重繪時拉伸它,然後只取其一部分並將其設置爲它的BackGroundImage,但Form會在其可見矩形外繪製其伸展背景。所以我可以看到差異,它不適合。
我使它工作,它適合父母的BackGroundImage,但它是很多代碼,並在調整大小時減慢我的程序。
必須有一個最簡單的方法來做到這一點。我不是說使用ControlStyles.SupportsTransparentBackColor。我希望它看起來就像沒有UserControl的背景。
您從父窗體複製背景圖像篇(控制大小)和設置的那件作爲對照的背景? – Reniuz 2011-05-31 08:24:11