麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > .NET > 正文

在.net中美化程序界面的方法

2023-05-17 11:41:59
字體:
供稿:網(wǎng)友

本文講解了在.net中美化界面程序的方法:
 

 diyblPic 

diyblPic

diyblPic

diyblPic

diyblPic

diyblPic

diyblPic









        看到上面的界面心動(dòng)了嗎?告訴大家,我用的都是VS2005的標(biāo)準(zhǔn)控件,實(shí)現(xiàn)換皮膚的功能也僅僅是數(shù)行代碼而已,也就是說以前熟悉的控件還照常使用。
        先介紹一下這套控件吧,這套控件僅有一個(gè)dll(IrisSkin2.dll)文件和一個(gè)skin文件夾,skin文件夾下共有22個(gè)子文件夾,每個(gè)子文件夾其實(shí)就是一套界面風(fēng)ge,也就是說我們可以使用22種不同風(fēng)ge。
        實(shí)現(xiàn)給界面換皮膚有兩種做法:(一)拷貝法,即使將界面資源夾下所有的文件拷貝到.exe文件所在的位置,然后在程序種通過skinEngine1.SkinFile=fileName(fileName是皮膚文件.ssk文件的位置)來設(shè)定界面皮膚,這種做法通常是我們需要在Debug文件夾和Release文件各保存一套皮膚文件,發(fā)布程序的時(shí)候也需要附帶這些文件。(二)嵌入資源法,本文就是采用這種辦法實(shí)現(xiàn)的,這樣做的好處是發(fā)布程序時(shí)(不管是Debug版本或Release版本)時(shí)vs自動(dòng)將皮膚文件編譯進(jìn)exe文件中,減少程序發(fā)布時(shí)文件的個(gè)數(shù),而且也不用管程序與皮膚文件的相對(duì)位置。
        首先打開VS工具箱,添加皮膚控件組件,如下圖:

diyblPic

        然后在出現(xiàn)的“選擇工具箱項(xiàng)”中點(diǎn)擊“瀏覽”按鈕,然后找到IrisSkin2.dll文件,然后“確定”,關(guān)閉對(duì)話窗口之后,皮膚控件組件就會(huì)出現(xiàn)在你的工具箱上了(具體出現(xiàn)在哪個(gè)分組跟你添加時(shí)添加哪個(gè)組有關(guān)),如下圖:
 

diyblPic

diyblPic


(我不小心加到打印分組去了,大家不要罵我:P)
        好了,現(xiàn)在可以編寫程序測試了,做一個(gè)簡單的窗體吧,界面上的控件如上圖所示,然后將皮膚組件拖拽到界面上,之后需要把程序所需要的皮膚資源文件添加進(jìn)來,這里我是采用添加資源的辦法。
 
        步驟如下:
(一)在WinForm工程上右鍵單擊“屬性”,在出現(xiàn)的界面中點(diǎn)“資源”選項(xiàng)卡,把所需的皮膚資源文件添加進(jìn)來(通過“添加現(xiàn)有文件”ming令添加皮膚文件),如下圖:

diyblPic

        注意如果該皮膚文件夾下除了*.ssk文件之外,還包含有其它圖片文件,建議將它們也作為資源添加到項(xiàng)目中。添加完成之后,我們就可以在代碼中通過Properties.Resources.文件名來獲取這些文件的內(nèi)容了,通過這個(gè)方法返回的是文件內(nèi)容的二進(jìn)制數(shù)據(jù)(byte[]),而skinEngine1.SkinStream需要的是一個(gè)Stream對(duì)象,通過msdn我們可以以這個(gè)二進(jìn)制數(shù)據(jù)構(gòu)建一個(gè)Stream對(duì)象(new MemoryStream(byte[] bytes)),然后賦值給皮膚組件的SkinStream屬性,如果需要換皮膚,重新構(gòu)建一個(gè)皮膚資源文件的Stream對(duì)象,然后重新賦值就行了。
 
         界面控件布局代碼很簡單,就不粘貼了,主要把后臺(tái)代碼放在這里吧(其實(shí)也很簡單,不過需要注意,因?yàn)槭褂昧薓emoryStream對(duì)象,就需要在程序引用程序集部分添加對(duì)IO方面的引用:using System.IO;) 
  代碼如下:
 

01 using System; 
02 using System.Collections.Generic; 
03 using System.ComponentModel; 
04 using System.Data; 
05 using System.Drawing; 
06 using System.Text; 
07 using System.IO; 
08 using System.Windows.Forms; 
09    
10 namespace SkinForm 
11
12         /// <summary> 
13         /// 說明:這是一個(gè)簡單的WinForm應(yīng)用程序,用來展示如何使用換皮膚控件來實(shí)現(xiàn)我們需要的漂亮界面,代碼很簡單。 
14         /// 作者:周公 
15         /// 時(shí)間:2008-1-8 
16         /// 首發(fā)地址:http://blog.csdn.net/zhoufoxcn 
17         /// </summary> 
18         public partial class MainForm : Form 
19         
20                 private MemoryStream memoryStream; 
21                 public MainForm() 
22                 
23                         InitializeComponent(); 
24                         SetSkinFile(Properties.Resources.MacOS); 
25                 
26    
27                 private void btnOK_Click(object sender, EventArgs e) 
28                 
29                         if (rbMacOS.Checked) 
30                         
31                                 SetSkinFile(Properties.Resources.MacOS); 
32                         
33                         else if (rbMP10.Checked) 
34                         
35                                 SetSkinFile(Properties.Resources.MP101); 
36                         
37                         else if (rbMSN.Checked) 
38                         
39                                 SetSkinFile(Properties.Resources.MSN1); 
40                         
41                         else if (rbPage.Checked) 
42                         
43                                 SetSkinFile(Properties.Resources.Page); 
44                         
45                         else if (rbRealOne.Checked) 
46                         
47                                 SetSkinFile(Properties.Resources.RealOne1); 
48                         
49                         else if (rbVista1.Checked) 
50                         
51                                 SetSkinFile(Properties.Resources.vista1_green1); 
52                         
53                         else if (rbVista2.Checked) 
54                         
55                                 SetSkinFile(Properties.Resources.Vista2_color11); 
56                         
57                         else 
58                         
59                                 SetSkinFile(Properties.Resources.XPBlue1); 
60                         
61                 
62    
63                 private void SetSkinFile(byte[] bytes) 
64                 
65                         memoryStream=new MemoryStream(bytes); 
66                         //設(shè)置皮膚可以通過兩種方式,一種是指定皮膚文件的位置, 
67                         //如skinEngine1.SkinFile=fileName(fileName是皮膚文件.ssk文件的位置) 
68                         //一種是指定皮膚文件的文件流,如本程序所示 
69                         skinEngine1.SkinStream = memoryStream; 
70                            
71                 
72         
73 }


程序界面效果如上面所示。
 
本文提到的皮膚組件可以到:http://download.csdn.net/user/zhoufoxcn/下載。
 
        20081月10日答廣大朋友的疑問:
(一)有的朋友懷疑在MDI窗口中是否可以很好運(yùn)用,我覺得是可以的,可以在MDI子窗口中設(shè)置它的皮膚文件和父窗口一致,這樣就做到了整個(gè)系統(tǒng)中所有界面皮膚風(fēng)ge一致了。
(二)原來我自己曾懷疑在系統(tǒng)對(duì)話框中不能很好運(yùn)行,剛剛證實(shí)了一下,是可以的,無需再做任何特殊設(shè)置。運(yùn)行情況如下:
 

diyblPic
這是在默認(rèn)皮膚為MacOS的情況下彈出的顏色對(duì)話框,也是MacOS風(fēng)ge的,如下:
diyblPic

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产91精品久久久久久久 | www.guochanav.com | 国产一级一级 | 成人在线视频在线观看 | 越南一级黄色片 | 国产精品视频导航 | 国产三级在线观看a | 国产成人综合在线视频 | 日韩欧美高清片 | 777zyz色资源站在线观看 | 久久精品一二三区 | 91色爱| 日韩视频在线观看免费 | 欧美城网站地址 | 亚洲狠狠入 | 91短视频在线观看视频 | 黄色男女视频 | 国产精品久久久久久久久久久久久久久久 | 毛片视频网站在线观看 | 草b视频在线观看 | 一色桃子av大全在线播放 | 色a综合| 一区二区精品在线 | 202z中文字幕第一页 | 久久久久久久久淑女av国产精品 | 成人在线观看一区 | 毛片视频大全 | 凹凸成人精品亚洲精品密奴 | 成人在线视频黄色 | 久章草在线视频 | 久久99精品久久 | 毛片av网| 成人男女视频 | 久久精品在线免费观看 | 蜜桃视频在线观看免费 | 55夜色66夜色国产精品视频 | 综合国产在线 | 成人毛片100部免费观看 | 成品片a免费直接观看 | 羞羞视频在线免费 | 狠狠操人人干 |