擁有xp風格的界面 - 中國WEB開發者網絡 (http://www.webasp.net) -- 技術教程 (http://www.webasp.net/article/) --- 擁有xp風格的界面 (http://www.webasp.net/article/15/14742.htm) |
| -- 作者:未知 -- 發佈日期: 2004-11-10 |
| 擁有xp風格的界面
Windows XP發佈時,我們中許多人都為她華麗漂亮的界面折服和興奮。然而,.NET1.0發佈時,我們中又有許多人,包括我自己,對它不支持XP風格感到大失所望。可事實是,在Windows XP(只限於WindowsXP)裡.NET支持XP風格,只是還要您做一點小工作。 這篇文章主要參考了http://www.codeproject.com/csharp/dotnetvisualstyles.asp 跟隨下面的步驟,使您的程序擁有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. 往項目添加新項。新添加一個XML文件,將文件命名為 [您的程序名].exe.manifest,[您的程序名]指的是在 ..\bin\debug 文件夾裡生成的可執行程序名 。文件的內容示例如下:您只要根據您在AssemblyInfo.cs裡所作的設置修改 version="1.0.0.0", name="abc", <description>abc</description> 這幾個值就可以了。 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="abc" type="win32" /> <description>abc</description> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="X86" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency> </assembly> 重新編譯程序。 注意,從ButtonBase,GroupBox和Label繼承下來的組件必須將FlatStyle屬性設為System。 3. 將 [您的程序名].exe.manifest 文件添加到程序的可執行文件 (1)菜單-->文件-->打開,打開..\bin\debug\[您的程序名].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的目的也是為了讓系統對組件進行繪製。 默認情況下,系統將使用..\Windows\System32目錄下的DLL,您需要做的工作就是告訴系統使用另一個DLL,這就是將 [您的程序名].exe.manifest 文件 添加到可執行文件的目的。 下面是支持XP風格的組件完整列表: Label,TextBox, RichTextBox, HScrollBox, VScrollBox, ProgressBar, TabControl, MainMenu, ComboBox, ContextMenu, DataGrid, ListBox, ListView, TreeView, DataTimePicker, MonthCalendar, Splitter,TrackBar, StatusBar, ToolBar |
| webasp.net |