WPF MessageBox按钮不是OS主题

Ver*_*cas 8 c# wpf messagebox .net-4.0

因此,WPF中我的消息框的按钮不是OS的主题.
我甚至尝试过这种方法但它没有用.

我有一个清单,我在Windows 7 Ultimate x86和.NET Framework 4 Client Profile下运行.


编辑:它现在有效.

Han*_*ant 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>
Run Code Online (Sandbox Code Playgroud)

消息框现在将具有操作系统的视觉样式,默认情况下在Vista和更高版本上具有发光关闭按钮的Aero外观.

如果在Visual Studio 2010中执行此操作,则此清单条目已存在但已注释掉.你会在文件的底部找到它.只需删除评论,<!--之前<dependency>-->之后</dependency>

请注意,在启用调试器和Visual Studio宿主进程的情况下,未启用此清单.这是构建目录中的一个不同的.exe文件,yourapp.vshost.exe.Project + Properties,Debug选项卡,向下滚动,取消选中"启用Visual Studio托管过程".这有一些与安全相关的副作用,实际上没有太多意义,因为你的用户永远不会遇到这个问题.


Pri*_*ner 9

您所做的更改已保存,但在VS中进行调试时无法查看它们.要解决此问题,请右键单击您的项目,然后单击"属性",然后转到"调试".页面底部有一个名为"启用Visual Studio托管过程"的复选框 - 取消选中此项.建议您在进行此更改后重新启动visual studio.

或者,您可以在不进行调试的情况下构建(CTRL + F5).