我向 Microsoft 发布了一条评论,指出 WPF 中的对话框未启用 VisualStyle。
乔卡斯特罗在那里发布了一个我不太明白如何实现的解决方法,有人可以帮忙吗?
这是他的回应:
出于应用程序兼容性的原因,应用程序默认情况下不使用系统通用控件的 v6(自 XP 起可用)。这并不真正适用于 WPF,但您也只在使用本机控件时的少数情况下看到它,因此它不像 WinForms 那样普遍,后者的 API 只是包装标准控件。
要在 WPF 中解决此问题,您需要通过在 exe 的清单中指定 v6 comctl32 来明确选择加入。这必须在 exe 上完成,因此 WPF 不能将其作为其 DLL 的一部分。EnableVisualStyles 在运行时执行此操作,但这种方式通常更好。
例如,类似:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<description>MyExe.exe</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"/>
</dependentAssembly>
</dependency>
</assembly>