問題的產生:多個picturebox重疊時,上面的picturebox即使設置transparent,但是透出來的也是form的底色,而不是透出下面那個picturebox的圖案。摔!
解決的方法: 將多張png繪在同一個bitmap上,再顯示在一個picturebox裏。奇怪的是,網上的教程都有個去透明色的語句,我沒有用,卻也可以成功。
bm:大家的圖都繪在bm上
btm:每次要繪的圖
類變量:(e.g. class name :linyy1188)
public Bitmap bm ;
構造函數:bm = new Bitmap(861,627);
成員函數:
1.複製下這次要繪的圖像
2.複製下以前會好的圖像
3.h是被繪的
4.把image繪到h上
5.update一下bm
public void Overlap(Bitmap btm)
{
Bitmap image = new Bitmap(btm);
Bitmap h = new Bitmap(bm);
Graphics g = Graphics.FromImage(h);
g.DrawImage(image, new Rectangle(0, 0, 861, 627));
bm = h;
}
調用:(我很多圖片都放在resources裏了)
Overlap(new Bitmap(Properties.Resources.XXX))
顯示:this.pictureBox1.Image = linyy1188.bm;
總結:
有些步驟多餘,但是抱着成功就好的信念
reference: