本文描述如何在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...