听写面板和 PictureBox 透明度顺序
Dictating Panel and PictureBox Transparency Order
我需要一些帮助来理解 windows 表单中的透明度顺序。我创建了一个简单的表单,上面什么也没有,叫做测试。
在表单的构造中,我创建了一个面板和一张图片,如下所示:
public partial class test : Form
{
public test()
{
InitializeComponent();
//create a panel
Panel panel = new Panel();
panel.Location = new Point(10, 10);
panel.Size = new Size(100, 100);
panel.BackColor = Color.FromArgb(255, 0, 0);
panel.Show();
//put panel on screen
this.Controls.Add(panel);
//create a picture box
PictureBox picture = new PictureBox();
picture.ImageLocation = "../myPicture2.png";
picture.Location = new Point(20, 20);
picture.Size = new Size(100, 100);
picture.BackColor = Color.Transparent;
picture.Show();
this.Controls.Add(picture);
picture.BringToFront();
}
}
起初我使用的图像是 myPicture1.png
,一张白色背景的图像给了我这个结果。
但后来我用 gimp 裁剪了白色背景,使其成为透明背景。
但是,现在显示的是表单的背景,而不是面板。
当我将此 PictureBox 放在面板顶部时,我试图将面板的背景颜色保持在图像后面。
像这样:
有人可以向我解释一下如何实现将面板背景放在图片框中透明图像后面的预期结果吗?一如既往地感谢所有建议!
这个问题是不是图片框在窗体上而不是在面板里面导致的?
panel.Controls.Add(picture);
我需要一些帮助来理解 windows 表单中的透明度顺序。我创建了一个简单的表单,上面什么也没有,叫做测试。
在表单的构造中,我创建了一个面板和一张图片,如下所示:
public partial class test : Form
{
public test()
{
InitializeComponent();
//create a panel
Panel panel = new Panel();
panel.Location = new Point(10, 10);
panel.Size = new Size(100, 100);
panel.BackColor = Color.FromArgb(255, 0, 0);
panel.Show();
//put panel on screen
this.Controls.Add(panel);
//create a picture box
PictureBox picture = new PictureBox();
picture.ImageLocation = "../myPicture2.png";
picture.Location = new Point(20, 20);
picture.Size = new Size(100, 100);
picture.BackColor = Color.Transparent;
picture.Show();
this.Controls.Add(picture);
picture.BringToFront();
}
}
起初我使用的图像是 myPicture1.png
,一张白色背景的图像给了我这个结果。
但后来我用 gimp 裁剪了白色背景,使其成为透明背景。
但是,现在显示的是表单的背景,而不是面板。
当我将此 PictureBox 放在面板顶部时,我试图将面板的背景颜色保持在图像后面。
像这样:
有人可以向我解释一下如何实现将面板背景放在图片框中透明图像后面的预期结果吗?一如既往地感谢所有建议!
这个问题是不是图片框在窗体上而不是在面板里面导致的?
panel.Controls.Add(picture);