轻而易举拥有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

轻而易举拥有xp风格的界面相关推荐

  1. 摘:轻而易举拥有xp风格的界面

    轻而易举拥有xp风格的界面 Windows XP发布时,我们中许多人都为她华丽漂亮的界面折服和兴奋.然而,.NET1.0发布时,我们中又有许多人,包括我自己,对它不支持XP风格感到大失所望.可事实是, ...

  2. VC程序中Windows XP风格程序界面的实现

    文章原创,转载请注明出处 默认情况下用MVC++98创建的MFC应用程序的界面使用5.82版本的ComCtrl32.dll中控件,使得其风格为Windows 2000系统的风格, 看上去绘制得比较粗糙 ...

  3. win7变成xp风格了怎么改回_【让win7变成xp】win7变成xp风格_win7界面变成xp

    2017-06-23 15:07:55 本教程小编和大家分享让win7电脑变成无线路由器的设置方法,无线网络已经成为大家生活中不可缺少的一部分了,手机和笔记本设备连接即可上网.一些用户没有安装路由器, ...

  4. [转]VC无负担实现XP风格界面

    VC无负担实现XP风格界面 有件事情必须说一下,按照上面的方法,test.exe必须先调用InitCommonControls函数(已经废除,不建议使用)或者InitCommonControlsEx函 ...

  5. VC无负担实现XP风格界面

    关于让自己的程序界面实现XP风格这个问题,在网上的讨论很多,大多数的作法都是写一个.manifest文件,然后将文件名改一下,比如.exe文件为test.exe,就将这个.manifest文件改名成t ...

  6. VC6风格转XP风格界面的两种方法

    方法1 无负担的manifest文件 关于让自己的程序界面实现XP风格这个问题,在网上的讨论很多,大多数的作法都是写一个.manifest文件,然后将文件名改一下,比如.exe文件为test.exe, ...

  7. 使用manifest实现XP风格界面

    第一种方法:是写一个.manifest文件,然后将文件名改一下,比如.exe文件为test.exe,就将这个.manifest文件改名成test.exe.manifest,并将其和test.exe放在 ...

  8. vc中实现xp风格界面

    关于让自己的程序界面实现XP风格这个问题,在网上的讨论很多,大多数的作法都是写一个.manifest文件,然后将文件名改一下,比如.exe文件为test.exe,就将这个.manifest文件改名成t ...

  9. VC无负担实现XP风格界面 [转]

    关于让自己的程序界面实现XP风格这个问题,在网上的讨论很多,大多数的作法都是写一个.manifest文件,然后将文件名改一下,比如.exe文件为test.exe,就将这个.manifest文件改名成t ...

最新文章

  1. 简单的防盗链技术(过滤器原理)
  2. 账户系统db服务器为创建快照,Mysql 服务器同步(replication)设置.docx
  3. 关于input单选框的radio属性
  4. 我自横刀向天笑,我命由我不由天
  5. Existing lock /var/run/yum.pid: another copy is running as pid
  6. python爬虫分析数据_Python爬虫入门 处理数据
  7. .Net Framework学习的10个建议
  8. web测试与app功能测试的区别
  9. 赛锐信息:SAP设计ERP主路线
  10. 解决PRINT函数UTF-8问题
  11. java笔记:熟练掌握线程技术---基础篇之解决资源共享的问题(中)--前篇
  12. 《CLR via C#》读书笔记(5)基元类型、引用类型和值类型
  13. mssql差异备份获得的webshell的个人体会
  14. 「3D建模」建模中什么是重新拓补?为什么要拓补,有何作用?
  15. Learning to Rank基于pairwise的算法(三)—— RankNet、FRank、LambdaRank
  16. 电子计算机的发展世代
  17. mac升级python版本_Mac上python如何升级?
  18. 大数据的预测实力,这15个有趣的数据集,你可能闻所未闻
  19. Docker Desktop 已经支持 Apple M1 了
  20. 数据治理分析项目最佳实践

热门文章

  1. 阿里巴巴大数据实践-读书笔记
  2. 网易云课堂 商务英语
  3. 澳洲移民 技术移民_前5名:视频中的猫! 适用于移民的Linux计算机等
  4. SNS营销——网商成功之道
  5. 谷歌大动作!TPU超算系统大升级,全面超越英伟达A100
  6. 普及json格式相关问题
  7. MATLAB,如何取出一个1×n矩阵的最后一个元素?
  8. LSTM基础理论与实例
  9. 文心一言,站在奥林匹亚
  10. 测量固有频率的方法有哪些