在 WPF 中应用未签名的 Windows 主题
我正在使用 DA 的 Soft7 2.0(未签名主题),并使用 UxStyle 服务来加载它。
大多数应用程序都可以很好地调整其 UI,但 WPF 应用程序则不然。
如何使 WPF 应用程序也使用 Soft7 UI?我不想在 WPF 上强制使用某个主题,我只是希望它使用当前的 Windows 主题。
我运行的是 Windows 7 x64。
I am using Soft7 2.0 from DA (unsigned theme) and I'm using the UxStyle service to load it.
Most applications adjust their UI just fine, but not WPF apps.
How can I make WPF apps also use the Soft7 UI? I'm not looking to force a certain theme on WPF, I just want it to use the current Windows theme.
I'm running Windows 7 x64.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
WPF 和 Win32 是非常不同的技术,这就是为什么将 WPF 移植到新操作系统如此容易:它几乎不依赖 Win32。
当谈到自定义主题时,WPF 模板完全改变了游戏规则:WPF 中的自定义主题更加强大,但也与 Win32 有很大不同。这意味着主题供应商必须为 Win32 和 WPF 实现他们的主题。
如果系统主题同时包含 Win32 和 WPF DLL,您所需要做的就是确保 WPF DLL 位于您的应用程序目录或 GAC 中。 WPF会根据注册的主题名称自动加载并使用它。在包含 WPF DLL 的系统上安装主题应该会自动在 GAC 中注册它。
如果主题仅包含 Win32 代码而不包含任何 WPF 模板,则从 WPF 获得相同外观的唯一方法是编写您自己的模板以与主题中的模板相匹配。幸运的是,这很容易做到。
WPF and Win32 are very different technologies, which is why it is so easy to port WPF to new operating systems: It has practically no reliance on Win32.
When it comes to custom themes, WPF templates completely changes the ballgame: Custom themes in WPF are much more powerful but also very different from Win32. This means that theme vendors must implement their theme for both Win32 and WPF.
If system theme includes both a Win32 and a WPF DLL, all you need to do is make sure the WPF DLL is in your application directory or in the GAC. WPF will automatically load it and use it based on the registered theme name. Installing a theme on the system that includes a WPF DLL should automatically register it in the GAC.
If the theme includes only Win32 code and doesn't include any WPF templates, the only way to get the same look and feel from WPF is to code your own templates to match those in the theme. Fortunately this is very easy to do.