2017-02-05 11 views
1

の上にC#のPictureBox私はpbGradepbItemtype(PB =ピクチャボックス)の上になりたい別のPictureBox

pbItemtype.BackColor = Color.Transparent; 

// Change parent for overlay PictureBox... 
pbItemtype.Parent = pbGrade; 

私はすでにこれを試してみましたが、その後pbItemtypeでも2絵はまた、表示されませんボックスは、画像(pbItemtypeとpbGrade)

enter image description here

+0

。 – SLaks

+0

私はそれほど知っています:P –

答えて

1

まあ、実際にあなたがすでにやった、実際に簡単かつそれを行うことができますが

コードがに動作しますが、あなたはまた、ネストされたPBが前のそれを維持しますので、おそらく、おそらく新しいParentの目に見える大きさを残して、右下にオフになりますようLocationを修正する必要があります.... :コントロールをネストするとき

pbItemtype.BackColor = Color.Transparent; 

// Change parent for overlay PictureBox... 
pbItemtype.Parent = pbGrade; 
// Move it to the top left of the parent: 
pbItemtype.Location = Point.Empty; // or some other position.. 

透明性がうまく動作します。しかし、が重なってと重なっても動作しません!

あなたは簡単にそれを行うことはできません

(もちろん、私たちが見るのコードが画像を交換しませう!)

+0

Pbオーダーでちょっと遊んでいてうまく動作していましたが、P –

1

最善のアプローチを変更する表示用ピクチャにその構成された画像を割り当て、次に、ビットマップオブジェクトにオフラインオーバーレイで画像を構築することです。このような例

int width = 100; 
int height = 100; 
Image image = new Bitmap(width, height); 

using (var graphics = Graphics.FromImage(image)) 
{ 
    graphics.DrawImage(MyApplication.Properties.Resources.ImageItemX, new Rectangle(0, 0, width, height)); 
    graphics.DrawImage(MyApplication.Properties.Resources.ImageGradeZ, new Rectangle(0, 0, width, height)); 
} 

myPictureBox.SizeMode = PictureBoxSizeMode.Zoom; 
myPictureBox.Image = image; 

これはImageItemXImageGradeZは、これらの名前の下に、プロジェクトのリソースとしてインポート(たとえば、PNGファイルのための)背景を透明像であることを前提としています。


例えば、これらのリソース

Images defined in resources in project

与えられたコードは、この生成されます。

Form showing combined images in PictureBox

+0

実際には、OPは以下のものにPBoxを見ているよりも「何も」求めません。いいえ問題はない限り、コントロールが__overlap__に服従している限り.. - まだ:その場で物を描くことは、しばしば良い選択です。 – TaW

+0

ええ、真TaW私が望むのは、他のピクチャーボックス –