次のように、それぞれが透明な画像を持つ3つのpictureBoxがあります。
画像 2 と画像 3 を画像 1 に対して透明にするために、次のコードを書きました。
pictureBox2.Parent = pictureBox1;
pictureBox3.Parent = pictureBox1;
さて、私の問題: どうすれば画像 2 を画像 3 に対して透明にできますか?
次のように、それぞれが透明な画像を持つ3つのpictureBoxがあります。
画像 2 と画像 3 を画像 1 に対して透明にするために、次のコードを書きました。
pictureBox2.Parent = pictureBox1;
pictureBox3.Parent = pictureBox1;
さて、私の問題: どうすれば画像 2 を画像 3 に対して透明にできますか?
これがどれだけうまく機能するかには制限があります。画像をネストし始めると、その制限を超えています。次に、PictureBox がその親に対してのみ透明であることがわかります。他の PB がピクセルに寄与する合成画像の部分は表示されません。代わりに、親の背景が表示されます。
単一の PictureBox に切り替えて、コードを記述する必要があります。Paint イベント ハンドラーを実装し、e.Graphics.DrawImage() を呼び出して画像を描画します。レイヤリングはもはや問題ではなく、ペイントは背景に対して常に透明です。また、WPF が透過性を実装する方法。