2009-02-19 77 views
1

当我的项目是类库并且它正在加载到没有设置Application.EnableVisualStyles()的程序中时,如何启用视觉样式。我一直在为此挣扎2天。这是用C#(我已经看到了一些旧C++的例子和一些可能适用于VB的东西,但是C#没有明确的规定,如果甚至可以的话)。为类库启用视觉样式

我曾尝试在创建任何控件之前从我的类库中运行Application.EnableVisualStyles(),但似乎需要在Application.Run()完成之前完成,并且我无法控制何时Application.Run()被称为插件(VMware的虚拟基础架构客户端),因为它将进入第三方应用程序。


我试图创建一个清单文件和编译类库后,我在清单文件链接到我的ProgressBar.dll有: mt.exe -manifest ProgressBar.dll.manifest -outputresource:ProgressBar.dll ; 2

除此不起作用。如果我制作一个使用我的ProgressBar类库的虚拟应用程序,并将清单链接到该应用程序的exe文件,那么视觉样式就会出现(基本上,它在Project Properties,Application部分中指定Manifest文件的方式很长)。

现在我的按钮看起来很丑,但最让人恼火的是ProgressBar控件在Marquee风格中不起作用。我很快就不得不诉诸制作自己的Marquee风格的ProgressBar,或者只是在其中放入一个动画GIF。关于按钮,我想我可以开始使用Infragistics按钮来获得更一致的结果。

请和一如既往的感谢!

回答

0

当您拨打Application.EnableVisualStyles时,如何确保没有创建控件?创建并不一定意味着控件也可以在窗体上显示。

由于您正在使用封闭的第三方组件,因此如果外观和感觉非常重要,我会投入我的时间,而不是创建自己的控件。