2016-12-09 202 views
0

我目前正試圖把筆記放在工作人員圖像的頂部。但是,備註背景正在設置爲表單背景,如圖所示。 使用的圖像類型是PNG。c#覆蓋另一個圖像

enter image description here

//class music staff 
    public MusicStaff(int xLoc, int yLoc, int xSize, int ySize) 
     { 
      this.SetBounds(xLoc, yLoc, xSize, ySize); 
      this.Visible = true; 
      ResourceManager rm = Resources.ResourceManager; 

      Bitmap bmp = (Bitmap)rm.GetObject("Staff1"); 
      this.BackgroundImage = bmp; 
      this.BackgroundImageLayout = ImageLayout.Stretch; 
      this.BackColor = Color.White; 
//adding the background pic 
    panel4 = new MusicStaff(3, 62, 927, 150); 

//adding a note 
MusicNote p = new MusicNote(pitch, duration, shape, s); 

      p.SizeMode = PictureBoxSizeMode.StretchImage; 
      p.BackColor = Color.Transparent; 
      p.Size = new Size(50, 75); 
p.Location = new Point(xCounter + starterX, NoteLocations.c0.mainPoint); 
         Bitmap myImage = (Bitmap)rm.GetObject(shape); 
         p.Image = myImage; 
+1

發表任何代碼,因此每個人都可以知道從哪裏開始幫助 –

+0

ok代碼已添加 – christine

+0

該代碼看起來有點被截斷,這通常很好,但在這種情況下,我需要更多一點才能獲得一些更多的上下文,看看究竟發生了什麼。 –

回答

0

你是不是真的疊加圖像。您正在使用圖像疊加控件。

要使用透明度,您的筆記控件需要在員工控制中嵌套

因爲它們不是,透明度顯示其實際的顏色,即形式。

p.Parent=panel4並相應地適應的位置,即,使它們相對於該人員..

這是的WinForms透明度,這不支持重疊控制的限制。 嵌套控件將正常工作,但只能通過從父複製它們僞裝透明部分..

注意,作爲一個結果,你將不能夠有音符相互重疊或任何重疊其他控件。

經常放棄使用控件是更好的方法;相反,可以簡單地繪製組成總數的所有部分。

因此,您可以在panel4_Paint事件中執行一系列e.Graphics.DrawImage(noteImg, x, y)