C 實現透明背景的垂直Label控制項

2021-06-20 13:45:08 字數 1591 閱讀 6155

本文描述如何在c#中建立乙個透明背景色的垂直label使用者控制項。該使用者控制項允許你從底部或頂部開始繪製文字。

本文是vertical label control in vb.net的延續。其實,更準確的說,我是把他的工作翻譯到c#中,並新增了從下向上顯示文字的功能。另外,支援背景透明。

**使用

本文中的源**提供了乙個類,並用它生成了乙個dll,你可以新增為windows form設計器中toolbox裡的乙個item。

控制項**

該類使用了以下命名空間:

using system;

using system.componentmodel;

using system.drawing;

using randz.customcontrols;
控制項的**中,起實際作用的是onpaint事件的過載:

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

else

solidbrush labelforecolorbrush = new solidbrush(base.forecolor);

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);

e.graphics.textrenderinghint = this._rendermode;

e.graphics.smoothingmode = system.drawing.drawing2d.smoothingmode.highquality;

if (this.textdrawmode == drawmode.bottomup)

else

}

你可以看到**裡面的if (this.textdrawmode == drawmode.bottomup),它是決定從底部向上,還是從頂部向下來繪製文字。

textdrawmode是乙個額外的屬性,你可以在設計**的時候,設定它。

注意,有乙個布林型的變數transparentbackground,如果它被設定為true,brush顏色會被設定成color.empty。

為了讓控制項透明,我過載了下面的**:

protected override createparams createparams

}

資源鏈結

c 實現label和按鈕透明

在此介紹的label和按鈕透明是借助第三方控制項的方式,假設現有專案是testdurban,需要引用的第三方控制項專案的名稱是alphamobilecontrols。首先,需要引入第三方控制項,步驟如下,檔案 新增 現有專案,找到對應的檔案 本例為alphamobilecontrols.csproj...

C 設定label(標籤)控制項的背景顏色為透明

有時候,我們需要將控制項的背景顏色設定為透明,比如說label 標籤 控制項。那麼,如何將控制項的背景顏色設定為透明?是不是只要將控制項的backcolor屬性設為transparent 透明 就可以了呢?答案是否定的。看似很簡單,其實不然,在實際操作過程中,很讓人抓狂,抓狂到讓你懷疑人生。首先要解...

在C 中怎麼將label標籤的背景設為透明

以上內容 侵刪。使用 1.lblpstart.backcolor color.transparent 就可以讓lable控制項的背景色 透明,可以看到擺放lable容器的背景色 但這個背景色 不一定是窗體的背景色。2.from1.controls.add lable1 lable1.backcolo...