将自定义视觉样式(.msstyle)应用于单个Winforms应用程序

有没有办法将自定义视觉样式(.msstyle)应用于Windows窗体应用程序而不更改整个系统的主题?基本上我们希望我们的应用程序保持相同的主题,无论在控制面板中设置什么。请不要告诉我你是否认为这是一个好主意。我想知道是否有任何方法可以做到这一点,不涉及专有库,如一系列本机API调用。谢谢!     
已邀请:
SetWindowTheme
功能看起来像您正在寻找的解决方案。你必须做P / Invoke才能使用它。     
遗憾的是,这需要很多钩子而不仅仅是简单的P / Invoke。 使用托管代码覆盖/创建新控件可能会更快更好。否则,您需要在本机DLL的帮助下挂钩主调用,并且要非常小心。 事实上,我不知道如何自己实现它,我很害怕。那时我会给出一个更有帮助的答案。通过查看Style Soft(该公司自2014年以来似乎已经死亡)的一个名为“VisualStyler”的现已废弃工具的代码,整个过程似乎过于复杂,这很好地支持了所有这些。 另外,如果你真的决定使用uxtheme,那么你将会被Windows主题引擎所提供的东西所困扰,仅限于它的视觉风格文件格式和hickups(你现在甚至有一个好的编辑器吗?)。 我希望微软在为XP创建主题引擎时能够完成钉头,允许应用程序开发人员将其用于自己的应用程序标识。但是当涉及到主题/ Windows产品标识时,他们似乎永远不会这样做(另一个例子是DWM没有暴露任何3D转换功能,但是通过滥用这些东西来防止应用程序做疯狂的事情可能是一个好主意)。 选项? 在托管代码中创建自己的控件,自己处理绘图。 购买为Win32应用程序提供的产品。 开始进入WPF,它提供了创建应用程序主题的现代和理智的方法。     

要回复问题请先登录注册