讓.net擁有xp風格的界面

發表于:2007-04-28來源:作者:點擊數: 標簽:windows擁有.NET風格發布
Windows XP 發布時,我們中許多人都為她華麗漂亮的界面折服和興奮。然而,.NET1.0發布時,我們中又有許多人,包括我自己,對它不支持XP風格感到大失所望??墒聦嵤?,在Windows XP(只限于WindowsXP)里.NET支持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="6595b64144clearcase/" target="_blank" >ccf1df"
                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

原文轉自:http://www.anti-gravitydesign.com

評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97