Ich habe ein Hintergrundbild, dann möchte ich mehrere andere oben drauf laden. Jedes Bild ist ein PNG mit einem Alphakanal, bei dem verschiedene Bereiche nicht transparent sind.C#: Erstellen Sie einen Stapel von PictureBox
Ich legte eine PicureBox auf ein Formular. Dann im Code:
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);
}
wo „form_picture“ die PictureBox auf dem Formular platziert ist, und meine Ressource Bilder werden 0,1,2..10 genannt.
Es wird nur das erste Bild oder das letzte Bild angezeigt (Entfernen des Kommentars zur BringToFront-Methode). Es scheint kein Problem der Transparenz zu sein, weil ich das Hintergrundbild richtig sehe, aber nur den ersten oder letzten undurchsichtigen Bereich der oberen Ebenen.
Ich fürchte, ich verwende nicht richtig die Eigenschaften.
Ja. In der Tat, wenn ich mich gegenseitig repariere (d. H. 0 bis Hintergrund, 1 bis 0, 2 bis 1, etc ...), sehe ich alle undurchsichtigen Bereiche (wie erwartet) und das Hintergrundbild in transparenten Bereichen. Aber ich kann jetzt nicht nur eins verstecken (es wird auch alle Kinder verstecken) – Mark
@someone: https://stackoverflow.com/questions/19910172/how-to-make-picturebox-transparent – Mark