C 實現Winform自定義半透明遮罩層

2021-09-25 20:21:14 字數 1683 閱讀 7348

c#實現winform自定義半透明遮罩層

在網頁中通過div+css實現半透明效果不難,今天我們看看一種在winfrom中實現的方法:

效果圖如下,正常時:

顯示遮罩層時:

自定義遮罩層控制項的原始碼如下:

using system;

using system.drawing;

using system.windows.forms;

using system.componentmodel;

namespace myopaquelayer

public myopaquelayer(int alpha, bool isshowloadingimage)

}protected override void dispose(bool disposing)

}base.dispose(disposing);

}/// /// 自定義繪製窗體

///

///

protected override void onpaint(system.windows.forms.painteventargs e)

else

base.onpaint(e);

vlblcontrolwidth = this.size.width;

vlblcontrolheight = this.size.height;

e.graphics.drawrectangle(labelborderpen, 0, 0, vlblcontrolwidth, vlblcontrolheight);

e.graphics.fillrectangle(labelbackcolorbrush, 0, 0, vlblcontrolwidth, vlblcontrolheight);

}protected override createparams createparams }/*

* [category("myopaquelayer"), description("是否使用透明,預設為true")]

* 一般用於說明你自定義控制項的屬性(property)。

* category用於說明該屬性屬於哪個分類,description自然就是該屬性的含**釋。

*/[category("myopaquelayer"), description("是否使用透明,預設為true")]

public bool transparentbg

set}

[category("myopaquelayer"), description("設定透明度")]

public int alpha

set}

}}

opaquecommand的方法:showopaquelayer(顯示遮罩層)和hideopaquelayer(隱藏遮罩層)

using system;

using system.windows.forms;

namespace 載入中

this.m_opaquelayer.enabled = true;

this.m_opaquelayer.visible = true;

}catch

}/// /// 隱藏遮罩層

///

public void hideopaquelayer()

}catch(exception ex)}}

}

C 自定義Winform無邊框窗體

在實際專案中,winform窗體或者控制項不能滿足要求,所以就需要自己設計窗體等,當然設計介面可以用的東西很多,例如wpf 或者一些第三方的庫等。本例中將採用winform設計乙個扁平美觀的窗體。需要的可以參考 c 自定義button按鈕控制項 窗體效果 是否允許最大化 3 4private boo...

WinForm 建立自定義控制項

雖然vs為我們提供了很多控制項可以使用,但有時候這些控制項仍然不能滿足我們的要求,比如我們要對部分控制項進行一些個性化的定製,例如美化控制項,這時候就需要自己繪製控制項,或是在原有控制項的基礎上進行修改 自定義控制項分為三種 1 組合控制項 compositecontrols 在原有控制項的基礎上根...

WinForm自定義Loading控制項

在vs2008下封裝winform自定義loading控制項。autocircle.cs封裝了旋轉的圓形,直接在裡面新增label的話,計算圓形扇面的方法有點小複雜,所以在loadingpanel.cs將autocircle和label封裝在一起。該控制項中提供了當loadingpanel狀態變化時...