首页 > 编程 > .NET > 正文

net应用程序如何批上XP的外衣?

2024-07-21 02:17:14
字体:
来源:转载
供稿:网友
net framework 所提供的开发控件也太少了,也太难看了,自已画又费时费力也不见得会得出个什么好的效果。如果能够上我们的程序运行在xp环境中能自动应用xp的主题样式那就省时多了,让microsoft给我们去画控件!以下是我所所试验过的解决办法:

1.application.enablevisualstyles方法(只适和.net 1.1及以后版本支持)

在main方法中执行application.run(...)方法前先执行一下application.enablevisualstyles()方法,可以让接下来运行的应用程序中的控件自动套用xp的样式。不过有几点要注意:

所有控件都必须保持预设的状态,不能改变其边框样式及背景颜色等属性.如果有system选项的样式属性(如button的flatstyle)则必须选择system;

此方法在wiin2003中可以完全正常运行,但在win xp中工具条上的图标会不能显示.(这个也许是xp的bug,用下种方法可以解决这个问题);

2.加入manifest文件(适合所有windows应用程序)

在执行文件相同目录中加入一个yourapplicationname.exe.manifest的xml文件,可以迅速实现我们的需求,文件内容如下(加下划线片为需进行适当改变):

<?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="companyname.productname.yourapp"

type="win32"

/>

your application description here.



type="win32"

name="microsoft.windows.common-controls"

version="6.0.0.0"

processorarchitecture="x86"

publickeytoken="6595b64144ccf1df"

language="*"

/>




我已用这种方法改变很多不同的应用程序,都取得了成功。不过只能套用那些保持着windows预设属性的控件。它的实现原理是windows中所有控件都是交给一个comctl32.dll的组件来画的。xp以前的最高版本是5.0,xp中带了一个6.0的comctl32.dll,我们以上所做的目的就是通知应用程序采用t.6.0的comctl32来展示控件.




收集最实用的网页特效代码!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表