<button id="bphob"><form id="bphob"></form></button>
<button id="bphob"><xmp id="bphob">
<button id="bphob"></button>
<ins id="bphob"></ins>
<form id="bphob"><button id="bphob"></button></form><button id="bphob"></button>
<form id="bphob"></form>
<form id="bphob"></form>
<xmp id="bphob"><form id="bphob"><form id="bphob"></form></form>
<xmp id="bphob"><xmp id="bphob"><form id="bphob"></form>
<xmp id="bphob"><form id="bphob"></form>
<ins id="bphob"><form id="bphob"><form id="bphob"></form></form></ins><xmp id="bphob"><form id="bphob"><button id="bphob"></button></form><xmp id="bphob"><form id="bphob"><form id="bphob"></form></form>
<xmp id="bphob">
<xmp id="bphob"><form id="bphob"><form id="bphob"></form></form>
<form id="bphob"><button id="bphob"><button id="bphob"></button></button></form><xmp id="bphob"><form id="bphob"></form><xmp id="bphob"><form id="bphob"><button id="bphob"></button></form><form id="bphob"><form id="bphob"></form></form><xmp id="bphob"><form id="bphob"></form>
<xmp id="bphob"><xmp id="bphob"><button id="bphob"></button>
<xmp id="bphob"><xmp id="bphob">
<form id="bphob"></form>
<form id="bphob"><form id="bphob"><button id="bphob"></button></form></form>
<form id="bphob"></form>
<form id="bphob"></form><xmp id="bphob"><form id="bphob"><button id="bphob"><button id="bphob"></button></button></form><xmp id="bphob">
首頁 > 編程 > C# > 正文

C#個性化窗體界面的制作方法

2023-05-10 18:49:29
字體:
來源:轉載
供稿:網友

引言:

誰都希望自己的應用程序能讓人留下一個深刻的印象,讓自己的程序窗體有一件與眾不同的"外衣"是一個好辦法。試想:在一大堆的普通窗口中突然跳出一個很酷的界面,一定能讓人眼睛一亮進而產生興趣的。

在VB,VC中如何定制可伸縮個性化窗口早就不是什么秘密了,已經有了大量相關的文章進行介紹,無非都是如何調用系統API之類的方法,但是在.Net中調用API卻相對比較麻煩,所以使用.Net制作個性化窗體的文章也有一些,一般都是使用透明背景加圖片的方式,所以不能移動或者不能任意放大縮小窗體。

那有沒有不需要調用系統API的方法來實現可伸縮的個性化窗體的辦法呢?當然有,.Net Framework提供了一套非常強大的系統類庫,我們下面就要做一個使用"純".Net打造的可伸縮個性化窗體。

我們需要將窗體所有的"皮膚"全部換成我們自己定義的,包括標題欄,邊框和系統按紐等,所以我們首先需要定做一套自己的皮膚圖形文件。因為窗體是可伸縮的,所以我們不能簡單的取一整幅圖片來作為窗體皮膚,而是根據需要先將圖片切割為不同的部分,一般來說,有以下圖示幾大部分(紅線為切割線):

根據方位,將圖片各部分命名為:Bottom_Left,Bottom_Middle,Bottom_Right,Middle_Left,Middle_Right,Top_Left,Top_Middle,Top_Right,SysButton_Min,SysButton_Max,SysButton_Close,SysButton_Restore等。注意,有些圖片是可以伸縮的地方,比如Middle_Left,Bottom_Middle等處的圖片可以只是一小塊,以后需要進行重復貼圖。而有些固定大小的圖片,比如Bottom_Left,Top_Left等以后只用貼一次,實際應用的時候要注意區分。

采用以上原則,你便可以制作皮膚圖片,圖示如下:

然后可以將這些圖片放到ImageList控件或資源文件中供程序調用。(關于如何制作資源文件請參考:Visual C#資源文件編程--創建資源文件)

接下來,我們使用Visual Studio .Net新建一個Windows應用程序的項目,在窗體的屬性設置中,將窗體的FormBorderStyle屬性設置為None(無邊框樣式),如下圖所示:

定義一個資源管理器:

private ResourceManager rm ;

然后使用以下的方法在Form的構造函數中將圖片取出來(資源文件名為Skin.resources):

rm = new ResourceManager("SkinWindow.Skin", Assembly.GetExecutingAssembly());
        Bottom_Left = (Bitmap)rm.GetObject("Bottom_Left");

…(其它的圖片也按照此方法取)

重載Form的OnPaint事件:

Graphics g = e.Graphics;//手工畫窗體的各個部分

DrawMiddle_Left(e.Graphics);//畫左邊框

DrawBottom_Middle(e.Graphics);//畫下邊框

DrawMiddle_Right(e.Graphics);//畫右邊框

DrawBottom_Left(e.Graphics);//畫左下角

DrawBottom_Right(e.Graphics);//畫右下角

DrawTop_Left(e.Graphics);//畫標題欄左邊

DrawTop_Right(e.Graphics);//畫標題欄右邊

DrawTop_Middle(e.Graphics);//畫標題欄中間

DrawSys_Button(e.Graphics);//畫系統按紐

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
伊朗妓女裸体处处大,乳尖乱颤娇喘连连小说,亚洲一区在线日韩在线秋葵,chinese gay 男同69,日本免费不卡在线观看的nv
<button id="bphob"><form id="bphob"></form></button>
<button id="bphob"><xmp id="bphob">
<button id="bphob"></button>
<ins id="bphob"></ins>
<form id="bphob"><button id="bphob"></button></form><button id="bphob"></button>
<form id="bphob"></form>
<form id="bphob"></form>
<xmp id="bphob"><form id="bphob"><form id="bphob"></form></form>
<xmp id="bphob"><xmp id="bphob"><form id="bphob"></form>
<xmp id="bphob"><form id="bphob"></form>
<ins id="bphob"><form id="bphob"><form id="bphob"></form></form></ins><xmp id="bphob"><form id="bphob"><button id="bphob"></button></form><xmp id="bphob"><form id="bphob"><form id="bphob"></form></form>
<xmp id="bphob">
<xmp id="bphob"><form id="bphob"><form id="bphob"></form></form>
<form id="bphob"><button id="bphob"><button id="bphob"></button></button></form><xmp id="bphob"><form id="bphob"></form><xmp id="bphob"><form id="bphob"><button id="bphob"></button></form><form id="bphob"><form id="bphob"></form></form><xmp id="bphob"><form id="bphob"></form>
<xmp id="bphob"><xmp id="bphob"><button id="bphob"></button>
<xmp id="bphob"><xmp id="bphob">
<form id="bphob"></form>
<form id="bphob"><form id="bphob"><button id="bphob"></button></form></form>
<form id="bphob"></form>
<form id="bphob"></form><xmp id="bphob"><form id="bphob"><button id="bphob"><button id="bphob"></button></button></form><xmp id="bphob">