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

转载 2004年09月25日 09:11:00

.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"?>

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<?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"

/>

<description>Your application description here.</description>

<dependency>

<dependentAssembly>

<assemblyIdentity

type="win32"

name="Microsoft.Windows.Common-Controls"

version="6.0.0.0"

processorArchitecture="X86"

publicKeyToken="6595b64144ccf1df"

language="*"

/>

</dependentAssembly>

</dependency>

</assembly>

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

在上一篇文章.net应用程序如何批上XP的外衣? 中,我介绍了两种让应用程序自动套用XP主题样式的方法。值得注意的是:只有在程序运行在WINXP、WIN2003中,并且启动了主题服务时才会有效。

在第2种方法中我们需要在应用程序的同目录下加入一个Manifest文件,其实这个文件也可以嵌入到程序本身的资源中,即把两个文件合二为一,发布程序时则不需要再带上那个Manifest文件,以下是操作方法:

1.打开VS.NET 2003

2.用VS中的“打开文件”方法,打开应用程序文件(.exe文件,此例中为ImageSource.exe),VS会列出这个文件中的一些资源(用树结构显示):

2.选中根节点,(此例中为“ImageSource”),单击右键,在显示的上下文菜单中点击“添加资源”:

3.系统将弹出添加资源对话框。按下“导入”按钮,在文件选取对话框中选择好个与应用程序同名的Manifest文件(此例中为ImageSource.exe.Manifest),在弹出的“自定义资源类型”对话框中输入“manifest”,再按下确定。

4.保存修改。在程序的资源清单中你将会看到一个“manifest”项目。展开后,下面会有一个名为“101”的资源,选中它,并点击右键菜单中的“属性”。

5.在属性框中,把“ID”的值改为“1”:

6.保存修改,关闭VS.NET,然后就可以发布这个可自动套用XP主题样式的应用程序了。

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

.net framework 所提供的开发控件也太少了,也太难看了,自已画又费时费力也不见得会得出个什么好的效果。如果能够上我们的程序运行在XP环境中能自动应用XP的主题样式那就省时多了,让MICRO...
  • rainsnow
  • rainsnow
  • 2004年08月06日 08:48
  • 669

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

.net framework 所提供的开发控件也太少了,也太难看了,自已画又费时费力也不见得会得出个什么好的效果。如果能够上我们的程序运行在XP环境中能自动应用XP的主题样式那就省时多了,让MICRO...
  • 21aspnet
  • 21aspnet
  • 2007年03月21日 22:35
  • 1949

为.NET程序批上WPF的绚丽外衣

  引言:你也许听说过Avalon(现在被称为Windows Presentation Foundation,或WPF),也许看过相关的屏幕截图或demo,但是现在你可以亲手尝试了。让我们开始创建下一...
  • cuoguo1111
  • cuoguo1111
  • 2007年03月05日 11:03
  • 432

为.NET程序批上WPF的绚丽外衣

为.NE...
  • tanliyoung
  • tanliyoung
  • 2007年05月14日 15:58
  • 722

关于XP\win7系统中安装.net4.0 程序运行版本出错的原因之一

解决“This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms” ...
  • chenhongshuai12
  • chenhongshuai12
  • 2017年07月13日 11:06
  • 539

在Windows XP和Windows 7系统上安装.NET Framework 3.5框架

最近在发布个人软件的时候,需要.NET Framework 3.5框架的支持,有不少使用软件的人遇到了安装.NET Framework 3.5框架的问题,今天在这里简单的讲述一下安装方法。 在Wi...
  • jasonsong2008
  • jasonsong2008
  • 2013年12月10日 18:31
  • 21937

C#入门1.4——Net Framework编写应用程序的过程

使用.NET Framework编写应用程序,就是使用.NET代码库编写代码(使用支持Framework的任何一种语言)。 为执行C#代码,必须把它们转换为目标操作系统能够理解的语言,即本机代码(n...
  • QPC908694753
  • QPC908694753
  • 2016年08月03日 12:07
  • 455

★ .net应用程序如何表现XP风格?

...
  • shibs
  • shibs
  • 2007年04月29日 08:11
  • 428

应用程序外衣下的恶意软件

作者:Ranieri Romera(趋势科技资深威胁研究员) 几天前我无意间看到某用户发表在公共论坛的帖子,宣传一个能检查巴西公民信用积分和犯罪纪录的应用程序。  看着这个应用程序,我发现它基本上是对...
  • iqushi
  • iqushi
  • 2011年02月23日 14:43
  • 645

创建.NET应用程序所经历的步骤

1、使用某种.NET兼容语言(如C#)编写应用程序。 2、把代码编译为(CIL),存储在程序集中。 3、在执行代码时(如果这是一个可执行文件,就自动运行,或者在其他代码使用它时运行),首先必须使用...
  • ahao214
  • ahao214
  • 2015年03月06日 22:54
  • 832
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.net应用程序如何批上XP的外衣?
举报原因:
原因补充:

(最多只允许输入30个字)