輕而易舉擁有xp風格的介面 (轉)

worldblog發表於2007-08-16
輕而易舉擁有xp風格的介面 (轉)[@more@]

  XP釋出時,我們中許多人都為她華麗漂亮的介面折服和興奮。然而,1.0釋出時,我們中又有許多人,包括我自己,對它不支援XP風格感到大失所望。可事實是,在Windows XP(只限於WindowsXP)裡.NET支援XP風格,只是還要您做一點小工作。

  這篇文章主要參考了/visualstyles.">
  跟隨下面的步驟,使您的擁有XP風格的介面,GO!

1. 新建一個Windows應用程式,然後開啟AssemblyInfo.cs,修改一下內容,下面的是示例程式碼:
using System.Reflection;
using System.Runtime.CompilerServices;

[assembly: AssemblyTitle("abc")]
[assembly: AssemblyDescription("abc")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")] 
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("")]
[assembly: AssemblyKeyName("")]

2. 往專案新增新項。新新增一個,將檔案命名為 [您的程式名].exe.manifest,[您的程式名]指的是在 ..inde 資料夾裡生成的可程式名 。檔案的內容示例如下:您只要根據您在AssemblyInfo.cs裡所作的設定修改 version="1.0.0.0", name="abc", abc 這幾個值就可以了。


  xmlns="urn:schemas--com:asm.v1"
  manifestVersion="1.0">
    version="1.0.0.0"
  processorArchitecture="X86"
  name="abc"
  type="" />
  abc
 
 
    type="win32"
  name="Microsoft.Windows.Common-Controls"
  version="6.0.0.0"
  processorArchitecture="X86"
  publicKeyToken="6595b64144ccf1df"
  language="*" />
 

 

重新編譯程式。 注意,從ButtonBase,GroupBox和Label繼承下來的必須將FlatStyle屬性設為System。

3. 將 [您的程式名].exe.manifest  檔案新增到程式的可執行檔案

(1)選單--&gt檔案--&gt開啟,開啟..indebug[您的程式名].exe,現在您可以看到一個資源瀏覽樹;
(2)右擊根目錄[您的程式名],單擊"新增資源...";
(3)在跳出的對話方塊中單擊“自定義...”;
(4)將資源型別命名為RT_MANIFEST,確定;
(5)雙擊資源樹的RT_MANIFEST下的項(一般情況下是101),Copy 檔案 [您的程式名].exe.manifest 的內容,貼上在開啟的檔案中,貼上的結果是二進位制形式(結果有點奇怪,不用理會);
(6)儲存,然後將101項的ID改為1,再儲存。注意,不要重新對程式進行編譯。

現在,重新開啟您的程式,怎麼樣,介面應該不錯吧。

原理:
  問題的關鍵在於comctl32.dll。您搜尋一下您的,將發現有兩個comctl32.dll。元件的外觀就與這兩個DLL中的特定資源相聯絡,它們提供特定的資源用於元件客戶區域的繪製。對於繼承於ButtonBase,GroupBox和Label的元件,將它們的FlatStyle屬性設為System的目的也是為了讓對元件進行繪製。
  預設情況下,系統將使用..WindowsSystem32目錄下的DLL,您需要做的工作就是告訴系統使用另一個DLL,這就是將 [您的程式名].exe.manifest 檔案 新增到可執行檔案的目的。
  下面是支援XP風格的元件完整列表:
  Label,TextBox, RichTextBox, HScrollBox, VScrollBox, ProgressBar, TabControl, MainMenu, ComboBox, ContextMenu, DataGrid, ListBox, ListView, TreeView, DataTimePicker, MonthCalendar, Splitter,TrackBar, Statar, ToolBar

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-961216/,如需轉載,請註明出處,否則將追究法律責任。

相關文章