博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

VS.NET2003设计XP界面风格的程序

Posted on 2006-11-11 18:29  ㊣李逍遥☆  阅读(406)  评论(1)    收藏  举报
VS.NET2003设计XP界面风格的程序  

    VS.NET2003发布时,其设计的程序不直接支持XP界面风格。本文说明如何在Windows XP(只限于WindowsXP)里设计支持XP风格的.NET程序。
  
1.新建C#工程,假设工程名为WinApp5。随意加入一些控件,生成可执行文件 WinApp5/bin/debug/WinApp5.exe。

2.新建一个XML文件,文件命名为[您的程序名].exe.manifest,即WinApp5.exe.manifest。
其内容如下:
<?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="WinXpApp"
        type="win32" />
    <description>WinXpApp</description>
    <dependency>
        <dependentAssembly>
            <assemblyIdentity 
                type="win32" 
                name="Microsoft.Windows.Common-Controls" 
                version="6.0.0.0" 
                processorArchitecture="X86" 
                publicKeyToken="6595b64144ccf1df" 
                language="*" /> 
        </dependentAssembly> 
    </dependency> 
</assembly>

3将该XML文件拷贝至Debug目录,运行WinApp5程序,应该就可以看到XP界面风格了。

4.程序发布时这个XML文件必须形影不离,比较麻烦,所以最好将其加入资源。
(1)运行VS.NET2003。
(2)运行:菜单->文件->打开->文件,打开WinApp5.exe和WinApp5.exe.manifest。
(3)全选manifest文件内容,并复制(Ctrl_C)。然后关闭该文件。
(4)在WinApp5.exe文件的资源浏览树窗口,单击右键并选择"添加资源...";
(5)在跳出的对话框中单击“自定义...”;
(6)将资源类型命名为RT_MANIFEST,确定;
(7)双击资源树的RT_MANIFEST下的项(一般情况下是101),粘贴(Ctrl+V)刚刚拷贝的 WinApp5.exe.manifest 的内容,粘贴的结果是二进制形式(结果有点奇怪,不用理会);
(8)然后将101项的ID改为1,再保存。注意,不要重新对程序进行编译。
(9)删除WinApp5.exe.manifest文件,再重新打开您的程序,可以看到仍然是XP风格。

5. 说明
(1)部分控件具有FlatStyle属性的,必须将其设为System。
(2)该程序仅在WinXP下呈现XP界面风格,在其它操作系统下依附系统界面主题。
(3)程序调试时用Manifest文件方法调试,程序发布时再将其加入资源。
(4)该方法对大部分程序都适用,例如以前用VC6开发的程序。
(5)下面是支持XP风格的组件完整列表:
         Label,TextBox, RichTextBox, HScrollBox, VScrollBox, ProgressBar, TabControl, MainMenu, ComboBox, ContextMenu, DataGrid, ListBox, ListView, TreeView, DataTimePicker, MonthCalendar, Splitter,TrackBar, StatusBar, ToolBar
loading...