2

我向 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>
4

2 回答 2

4

前段时间我在博客上写过:

这些帖子描述了问题和解决方案:http ://www.nbdtech.com/blog/archive/2008/05/28/Why-am-I-Getting-Old-Style-File-Dialogs-and-Message.aspx , http://www.nbdtech.com/blog/archive/2008/06/08/Will-Setting-a-Manifest-Solve-My-WPF-Message-Box-Style.aspx

这篇文章就是你要找的:http ://www.nbdtech.com/blog/archive/2008/06/16/The-Application-Manifest-Needed-for-XP-and-Vista-Style-File.aspx

这讨论了如何获得文件打开和保存对话框的 Vista 风格:http ://www.nbdtech.com/blog/archive/2008/07/15/Vista-style-open-and-save-dialogs-with -WPF-without-using.aspx

于 2009-11-01T11:38:37.677 回答
1

在 Visual Basic 中,项目属性的结构略有不同。如果您发现这个问题并且您在 VS2010 中使用 VB,请按照这些说明生成app.manifest文件。

  1. 要创建app.manifest文件,请转到您的项目,然后选择属性。然后单击“应用程序”选项卡下的“查看窗口设置”
    • 视窗设置
  2. 这应该会生成并打开app.manifest文件,该文件保存在您的“我的项目”文件夹中
    • 应用程序清单

进一步阅读: WPF MessageBox 窗口样式

于 2013-10-04T17:40:57.887 回答