我希望我的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;
}
并且它可以工作,但我还必须计算Form的BackGroundImage,它是UserControl的Parent,每次它的大小改变并将Form的BackGroundImageLayout设置为none。我的UserControl可以使用Parent的BackGroundImage并在每次需要重绘时拉伸它,然后只取一块并将其设置为BackGroundImage,但Form将其拉伸背景绘制在其可见矩形之外。所以我可以看到差异,它不适合。
我使它工作并且它适合Parent的BackGroundImage,但它是很多代码并且在调整大小时减慢了我的程序。
必须有一种最简单的方法。我不是指使用ControlStyles.SupportsTransparentBackColor。我希望它看起来就像没有UserControl的背景。
答案 0 :(得分:4)
将usercontrol backcolor设为Transparent this.BackColor = Color.Transparent;
答案 1 :(得分:1)
你可以使用someUserControl.BackColor = Color.FromKnownColor(KnownColor.Transparent);和隐形的BackColor。
答案 2 :(得分:1)
如果你需要父母是透明的你 可以使用此代码:
parent.BackColor = Color.Red;
parent.TransparencyKey = parent.BackColor;