如何检索表单的拉伸图像?当我使用MyForm.BackgroundImage时,它会给我原始图像,但不会显示在表单上显示的拉伸图像。
如果我无法获取图像,可以从BackgroundImageLayout = Stretch重新创建生成的图像吗?
为什么我要这样做: 我有一个不允许透明度的控件。为了伪造透明度,我拍摄背景图像并为控件所覆盖的部分创建图像。这很有效,直到我将BackGroundImageLayout设置为除非之外的其他任何内容。
非常感谢任何帮助,谢谢。
答案 0 :(得分:2)
您可以检索/重新创建拉伸的表单背景图像,如下所示:
private Bitmap getFormBackgroundImage()
{
Bitmap bmp = new Bitmap(this.ClientSize.Width, this.ClientSize.Height);
using (Graphics g = Graphics.FromImage(bmp))
{
g.DrawImage(this.BackgroundImage,
new Rectangle(0, 0, bmp.Width, bmp.Height));
}
return bmp;
}
然后你可以裁剪掉一部分作为儿童控件的背景。
答案 1 :(得分:1)
试试这个:
a)设置表单的背景图像(基本控件)。
this.BackgroundImage = <image>;
b)创建一个子控件并将其放在基本控件上。
c)将子控件的底座设置为Fill。
this.childControl.Dock = DockStyle.Fill;
d)在基本控件构造函数中,将子控件的背景图像设置为基本控件的图像。像这样:
childControl.BackgroundImage = this.BackgroundImage;
e)将子控件的背景图像布局设置为strech。
childControl.BackgroundImageLayout = ImageLayout.Stretch;
这会使您的孩子控制显示为透明。希望它能解决你的问题。