因此,WPF中我的消息框的按钮不是操作系统的主题 我甚至试过this method但它没有用。
我有一个清单,我在Windows 7 Ultimate x86和.NET Framework 4 Client Profile下运行。
编辑:现在有效。
答案 0 :(得分:17)
这是WPF中的一个奇怪的故障,它缺少激活视觉样式的管道。双奇,因为这不难做到。
解决方法是修改嵌入程序中的清单。选择您的EXE项目,然后选择Project + Add New Item,General,选择Application Manifest File。您获得了嵌入的默认清单,请注意<assemblyIdentity>
和<trustInfo>
元素。将其粘贴在:
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
消息框现在将具有操作系统的视觉样式,默认情况下在Vista及更高版本上具有发光关闭按钮的Aero外观。
如果在Visual Studio 2010中执行此操作,则此清单条目已存在,但已注释掉。你会在文件的底部找到它。只需删除评论<!--
<dependency>
-->
和</dependency>
之后的{{1}}
请注意,在启用调试器并启用Visual Studio主机进程的情况下,未启用此清单。这是构建目录中的一个不同的.exe文件,yourapp.vshost.exe。 Project + Properties,Debug选项卡,向下滚动,取消选中“启用Visual Studio托管过程”。这有一些与安全相关的副作用,实际上没有太多意义,因为你的用户永远不会遇到这个问题。
答案 1 :(得分:9)
您所做的更改已保存,但在VS中进行调试时无法查看。要解决此问题,请右键单击您的项目,然后单击“属性”,然后转到“调试”。页面底部有一个名为“启用Visual Studio托管过程”的复选框 - 取消选中此项。建议您在进行此更改后重新启动visual studio。
或者,您可以在不调试的情况下构建(CTRL + F5)。
答案 2 :(得分:3)