私は背景イメージを持っています。各画像は、異なる領域が不透明であるアルファチャンネルを持つ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からバックグラウンド、1から0,2から1など)、私はすべての不透明な領域(予想どおり)と背景の透明な領域が見えます。しかし、私はただ1つだけ隠すことはできません(それはすべての子供も隠すでしょう) – Mark
@someone:https://stackoverflow.com/questions/19910172/how-to-make-picturebox-transparent – Mark