【问题标题】:MessageBox in WPF application still shows with not styledWPF 应用程序中的 MessageBox 仍然显示为未设置样式
【发布时间】:2013-01-25 23:14:36
【问题描述】:

我仔细按照说明如何在 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>

检查项目属性:图标和清单-> 清单中选择了 app.manifest 组合。重建项目...

还是这样的坏风格:

有什么想法吗?

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

谢谢解答

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

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

【问题讨论】:

  • 您希望它是什么样子?这些说明来自哪里?
  • @RowlandShaw:可能是stackoverflow.com/a/5289462/183367
  • 我完全按照我的描述做了,不多不少。说明来自注释行(第一行)
  • 你是在 VS 内部运行项目吗?尝试直接运行可执行文件(开始->运行或资源管理器)。
  • 如果您找到解决方案,请不要编辑问题,而是添加答案并将其标记为答案

标签: c# wpf


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    您在 assemblyIdentity 标记中指定的所有属性都是正确的,并给出您获得的结果。样式“不好”,因为您指定了“旧”样式。 (故意?)。

    你的问题既不是操作系统版本也不是VS,而是你的目标程序集

    史蒂芬·哈利米

    【讨论】:

    • 我没有指定旧样式...而是指定了主题样式,见第一行MS原评论...
    猜你喜欢
    • 2021-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多