2017-02-05 110 views
1

頂我想pbGrade是在pbItemtype(PB =圖片框)的頂部C#圖片框上的另一個圖片框

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

那麼實際上你可以做到這一點很容易和事實

代碼工作您還需要更正Location爲嵌套的PB將保持前一個,因此將可能是關閉的右下角,可能留下新Parent的可見大小.... :

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

最好的方法是用離線在Bitmap對象疊加來構造圖像,則該圖像構造分配給圖片框進行顯示。

例如是這樣的:

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我想要的是認爲其他圖片盒到另一個圖片盒 –