2017-10-14 65 views
0

我有一个背景图像,然后我想加载其他几个人。每张图片都是带有Alpha通道的png,其中不同区域不透明。C#:创建一个PictureBox的堆栈

我在表单上放置了一个PicureBox。然后在代码:

private List<PictureBox> layers = new List<PictureBox>(); 

for (int l = 0; l < 11; l++) 
{ 
    Image i = (Image) Properties.Resources.ResourceManager.GetObject(l.ToString()); 
    PictureBox b = new PictureBox 
    { 
     Parent = form_picture, 
     Image = i, 
     Dock = DockStyle.Fill, 
     SizeMode = PictureBoxSizeMode.Zoom, 
     BackColor = Color.Transparent 
    }; 
    //b.BringToFront(); 

    layers.Add(b); 
} 

其中“form_picture”是在窗体上放置图片框,和我的资源图像命名0,1,2..10。

它只显示第一个图像或最后一个图像(将注释移除到BringToFront方法)。 这似乎不是一个透明度问题,因为我正确地看到了背景图像,但只有上层的第一个或最后一个不透明区域。

恐怕我没有正确使用这些属性。

+0

是的。事实上,如果我互相重新组合(即0到背景,1到0,2到1等),我会在透明区域看到所有不透明区域(如预期的那样)和背景图片。但我现在不能隐藏一个(它会隐藏所有的孩子) – Mark

+0

@someone:https://stackoverflow.com/questions/19910172/how-to-make-picturebox-transparent – Mark

回答