程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# Flash的背景透明處理

C# Flash的背景透明處理

編輯:C#入門知識

現在發現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!

    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved