現在發現VB真的很方便,C#雖然也不錯,但是對flash的處理,和一些控件的使用還是不如VB方便!在VB上,flash的透明處理方便,只需修改flash控件shockwaveFlash的WMode屬性:wmode = Transparent,但是在C#中,這樣設置,flash控件根本沒反應!上網,百度、谷歌,搜搜搜!沒有得到解決方案,但是搜到了一個控件 f_in_box_lib.dll!雖然知道它支持flash背景透明,但是只有一個控件在手,沒有相關說明,相當於授之以魚,而無漁!沒辦法,直接訪問f_in_box官網http://www.f-in-box.com/dotnet/(f_in_box的.net版本),看了一下幫助!找到了相關的代碼:
分兩步:
1. WMode = Transparent (在屬性列表中設置)
2. 響應f_in_box_lib的OnPaintStage事件,並添加代碼
if (f_in_box__lib.PaintStage.PrePaint == stage)
{
f_in_box__lib.f_in_box__control f_in_box__control = (f_in_box__lib.f_in_box__control)sender;
using (Bitmap b = new Bitmap(Width, Height))
{
using (Graphics g = Graphics.FromImage(b))
{
PaintEventArgs pea = new PaintEventArgs(g, new Rectangle(f_in_box__control.Location, f_in_box__control.Size));
this.OnPaintBackground(pea);
this.OnPaint(pea);
g.DrawImage(
pictureBox1.Image,
new Rectangle(pictureBox1.Location, pictureBox1.Size),
new Rectangle(new Point(0, 0), pictureBox1.Image.Size),
GraphicsUnit.Pixel);
Canvas.DrawImage(
b,
new Rectangle(new Point(0, 0), f_in_box__control.Size),
new Rectangle(f_in_box__control.Location, f_in_box__control.Size),
GraphicsUnit.Pixel);
}
}
}
這樣就實現了flash的背景透明!
f_in_box官網實現了Demo下載,並附有源代碼!如果上述步驟還不能幫助你的話,就到官網下載Demo!唯一的缺點就是下載速度忒慢!有時還達不到1kb/s!