WPF应用程序中的MessageBox仍然显示没有样式

时间:2013-01-25 12:29:02

标签: c# wpf

我仔细按照说明更改了WPF应用程序中标准对话框的样式,因此我创建了一个app.manifest,从创建的模板中取消注释了这一部分

<!-- Enable themes for Windows common controls and dialogs (Windows XP and later) -->
<dependency>
   <dependentAssembly>
  <assemblyIdentity
      type="win32"
      name="Microsoft.Windows.Common-Controls"
      version="6.0.0.0"
      processorArchitecture="*"
      publicKeyToken="6595b64144ccf1df"
      language="*"
    />
</dependentAssembly>

检查项目属性:Icon and Manifest-&gt;清单在组合中选择了app.manifest。重建项目......

仍然有这样糟糕的风格:

bad style

有什么想法吗?

使用64位Win 7,VS 2010 SP1,应用程序是为x86构建的

答案的答案

*编辑* Anton Tykhyy作为评论回答了这个问题。 Thx Anton

Anton的评论引述: “你是从VS内部运行项目吗?尝试直接运行可执行文件(开始 - >运行或资源管理器)。 - Anton Tykhyy”

2 个答案:

答案 0 :(得分:3)

当您从VS内部运行项目时,VS实际运行的可执行文件不是您的构建输出.exe,而是具有扩展名.vshost.exe的特殊插页式可执行文件。此插页式可执行文件负责VS调试程序与新进程之间的通信,但它没有您指定的图标或清单。这就是为什么你会有不同的行为。

顺便说一句,“调试”选项卡下的项目设置中有一个名为“启用Visual Studio托管过程”的复选框。如果取消选中它,VS将直接运行输出.exe。

答案 1 :(得分:0)

您在assemblyIdentity标记中指定的所有属性都是coorect并给出您获得的tu结果。风格“糟糕”,因为你指定了“旧”风格。 (故意?)。

您的问题既不是OS版本也不是VS,而是您定位的程序集

Stephane Halimi