一.概要
Windows XP開創了一種全新的Windows用戶界面(UI)
這種用戶界面給用戶一種現代化的
超時髦的感受
Windows XP新創了閃亮的具有圓形邊角的控件以及極富未來派氣息的進度條等具有新風格的控件
而現在的Visual Studio
Net也具備了此類控件
那麼開發者就想能否在自己開發的程序中使用這類超酷的控件呢
答案是肯定的
程序員所要做的僅僅是添加一些引用以及一個資源文件
本文就通過介紹一個實例向大家介紹如何在Visual Basic和Visual C#下將控件的Windows XP風格應用到自己的程序中
注
本文介紹的控件風格特性只能在Windows XP下的運用程序中實現
二.介紹
我們先來做一個有關控件風格的比較
在Windows XP下的控件具有一種全新的外觀
圖示如下
而在Visual Studio
Net中提供的控件雖然和Windows XP下的是同樣的
但是它們的外觀卻截然不同
圖示如下
本文就向大家介紹如何使Visual Studio中的控件和Windows XP下的控件一樣
具有超酷的外觀
良好的用戶界面
你可以認為一個窗體由兩個相互獨立的部分組成
一個客戶區以及一個非客戶區
所有在Windows XP操作系統上運行的程序都有一個非客戶區
它包括
窗體框架
標題欄以及的非客戶區的滾動條
操作系統會自動給非客戶區應用Windows XP風格
所以盡管什麼也沒做
你也可以看到自己的程序在Windows XP上運行時具有新風格的窗體框架
標題欄以及滾動條
而我們真正要做的就是使客戶區的控件也具有Windows XP的風格
三.實現原理
非客戶區的外觀是由當前所應用的視覺風格決定的
一個運用程序或是操作系統的視覺風格是可以被更改的
就像上面提到的那樣
當一個運用程序運行在Windows XP上時
窗體的滾動條以及標題欄就立即改變了外觀風格
只要運用程序應用了版本為
的Comctl
dll
那麼其中的某些控件就是自動的呈現新的外觀
這類控件如下
其他的控件則需要一定的條件
確切地說
從System
Windows
Forms
ButtonBase類繼承過來的控件(Button
RadioButton
GroupBox以及CheckBox等控件)有一個FlatStyle屬性
這個屬性表明控件應該先被繪制
通過設置這個屬性
控件可以用以下幾種方式來繪制
你可以發現
當FlatStyle屬性被設置為System後
控件的外觀就由用戶的操作系統設置所決定
這樣的話
要是用戶的操作系統為Windows XP
那麼相應控件的外觀就會呈現Windows XP的風格了
當FlatStyle屬性被設置為System後
能改變視覺風格的控件如下
Button 控件
RadioButton 控件
CheckBox 控件
GroupBox 控件
最後
還有一些控件在Windows XP和Visual Studio下是一樣的
這些控件如下
Label 控件
LinkLabel 控件
DomainUpDown 控件
NumericUpDown 控件
CheckedListBox 控件
四.使用Manifest文件
如果你想在你的運用程序中運用Windows XP的外觀效果
你必須給你的工程添加一個Manifest文件(在建立工程過程中用來確定資源的一個文件)
這個文件指明了在工程中應用版本為
的Comctl
dll文件(只要這個文件存在)
版本為
的Comctl
dll文件包括了一些新的控件以及一些控件的新特性
它和以前版本的最大的差異就是它支持控件外觀效果的改變
不像以前的版本
版本為
的Comctl
dll是不可以被重新發布的
你只可以在包含它的操作系統中使用它的動態連接庫(DLL)
Windows XP既包含了版本為
的
又包含了版本為
的(在默認的情況下
運用程序是用版本為
的Comctl
dll的)
在版本為
的Comctl
dll中
包含了用戶控件和一般控件
你只要改變和這些控件相關的dll文件
就可以使它們呈現出Winodws XP的外觀風格了
為了和用戶的計算機操作系統相協調
你必須在你的運用程序中建立一個Manifest文件來明確的指定其窗體控件使用的是版本為
的Comctl
dll
該Manifest文件是一個XML文件
它包含在你的程序中
作為一個資源
或是在可執行文件目錄下的一個單獨的文件
因此
為了使你的運用程序具有像Windows XP那樣的外觀效果
你必須
.若控件有FlatStyle屬性
則把它設置為FlatStyle
System
.建立一個Manifest文件
將版本為
的Comctl
dll捆綁到你的運用程序中(下面的例子中的Manifest文件可以將該Comctl
dll捆綁到任何用Visual Studio
Net建立的運用程序中)
.把這個資源(Manifest文件)添加到你的可執行文件並進行重建
五.將Windows XP視覺風格應用到控件中
學會應用Windows XP視覺風格的最簡單的方法就是學習做一個實例
本文最後就向大家介紹任何建立一個簡單的運用程序並使它的窗體上的控件具有Windows XP視覺風格
接下來
我們要做的就是
.建立一個運用程序的工程
並在窗體上添加一些控件
.建立一個Manifest文件
將所需的DLL捆綁到你的運用程序中
.將該Manifest文件存放在可執行文件目錄下
.添加一項資源(Manifest文件)到可執行文件
下面就開始創建新的工程……
創建工程
.新建一個Windows運用程序工程
(注
請記住工程名以及工程存放的目錄
下面有用)
.從工具箱裡拖以下控件到窗體上並將它們排列好
Button 控件
RadioButton 控件
ProgressBar 控件
CheckBox 控件
Label 控件
(注
雖然Label控件的外觀不會改變
它也被拖放到窗體上以作對比)
.將Button
RadioButton
CheckBox等控件的FlatStyle屬性設置為System
(技巧
你可以在點擊每個控件的同時按下Ctrl鍵
這樣就可以同時選中這三個控件
然後
在FlatStyle屬性的下拉框中選定System即可)
.雙擊Button控件以給它添加事件處理函數
代碼編輯器會自動打開
.添加以下一些代碼
設置ProgressBar控件的Value屬性
那樣你就可以看到新的一個進度條了
Visual Basic
Private Sub Button
_Click(ByVal sender As System
Object
_
ByVal e As System
EventArgs) Handles Button
Click
ProgressBar
Value =
End Sub
// C#
private void button
_Click(object sender
System
EventArgs e)
{
progressBar
Value =
;
}
.從
生成
菜單上選擇
生成
選項
.最後
全部保存
建立Manifest文件
建立一個XML文件
將正確的版本的Comctl
dll捆綁到你的運用程序中
新建並編輯Manifest文件
.在解決方案資源管理器中
右擊工程名
添加
>添加新項
.在添加新項對話框中完成以下工作
A.在左邊的方塊中點擊
本地項目項
B.在右邊的方塊中選定
文本文件
C.在名稱框中以下面的方式命名文件
exemanifest因此如果你的運用程序名為MyXPApp那麼你應該將這個XML文件命名為MyXPAppexemanifest
.點擊打開按鈕文本編輯器中打開了你新建的文件
.將下面的XML添加到該文本文件
encoding=UTF standalone=yes?>
version=
processorArchitecture=X
name=MicrosoftWinweb
type=win
/>
NET control deployment tool
type=win
name=MicrosoftWindowsCommonControls
version=
processorArchitecture=X
publicKeyToken=bccfdf
language=*
/>
.將上面第五行中的替換成你的運用程序名即可
.從生成菜單上選擇生成選項
.最後全部保存
將該Manifest文件存放在可執行文件所在目錄
現在將你建立的Manifest文件拷貝到可執行文件所在的目錄
移動Manifest文件
.打開資源管理器到Visual Studio解決方案所在的目錄在這個目錄裡你應該看到剛才建立的Manifest文件(命名為exemanifest)
.選擇該文件並拷貝它
.將當前目錄轉到obj>Debug在這個目錄下你可以看到可執行文件
.將拷貝的Manifest文件粘貼到該目錄下
添加Manifest文件到可執行文件
接下來在Visual Studio中打開可執行文件並將Manifest文件作為一項資源添加到其中
以資源方式添加Manifest文件
.在Visual Studio中在文件菜單下選擇打開>文件
.轉到可執行文件所在的目錄並雙擊打開可執行文件
.在設計框中右擊可執行文件名選擇添加資
From:http://tw.wingwit.com/Article/os/xtgl/201311/8938.html