2014-01-10 48 views
0

我將圖像存儲在數組中,我將在圖像框中顯示彼此頂部(使用透明度),但是如何設置每個圖像的父級(以啓用透明度)?將圖像分配給存儲在圖像數組中的圖像

它是沿

images[1].parent = images[0]; 

注意線的東西,上面的代碼不會因此開展工作的問題。在你需要的屬性或屬性的類

+0

什麼'images'?一個什麼樣的數組?這是winforms嗎? WPF?網?還有別的嗎? –

+0

抱歉,圖片是在本地拍攝的,所以我在表單第一次加載時填充數組: 'images [0] = Image.FromFile(「」+ Application.StartupPath +「../../../ images/imageA。 png「);' 它使用winforms – user3178614

+0

那麼'System.Drawing.Image'沒有任何類似的'Parent'屬性。如果你希望能夠在你的圖像中存儲一些元數據,你可能想用一個'Parent'屬性和一個包含你的實際圖像的'Image'屬性來包裝它。 –

回答

0

環繞你的圖像(位圖是密封的,所以你不能僅僅從它繼承):

public class MyImageWrapper 
{ 
    public MyImageWrapper Parent { get; set; } 
    public Image Image { get; set; } 

    public MyImageWrapper(Image i, MyImageWrapper parent = null) 
    { 
     Parent = parent; 
     Image = i; 
    } 
} 

現在,您可以將您的Image陣列更改爲像這樣的陣列MyImageWrapper,你可以做的事情:

Images[1].Parent = Images[0] 

當然,你需要記住訪問包裹圖像您嘗試,並將其分配給需要的圖像的控制,例如前:

pictureBox1.Image = Images[0].Image; 

而對於原本加載圖片時,你會:

images[0] = new ImageWrapper(Image.FromFile("MyImage.png")); 
+0

我正在嘗試使用imageWrapper,並試圖執行時遇到錯誤:'pictureBox1.Image = imageArray [0]; '你提到我需要在分配它之前訪問包裝好的圖像,我該怎麼做。感謝您的幫助,這是一個絕妙的答案! – user3178614

+0

@ user3178614:查看我的最新編輯以澄清。你只需要在你的語句結尾添加'.Image'。 –

+0

謝謝,完美無缺! – user3178614