winforms - C# OpenFileDialog 在 Win7 中只显示 XP-Style

标签 winforms windows-7 openfiledialog

我正在使用一个使用 System.Windows.Forms.OpenFileDialog 的 .NET 3.5 应用程序。但是,无论我做什么,打开的对话框都只显示 XP 风格的版本。我已经使代码尽可能简单:

OpenFileDialog openFileDialog = new OpenFileDialog()
//openFileDialog.AutoUpgradeEnabled = true; //Adding this line does nothing

if(DialogResult.OK == openFileDialog.ShowDialog())
{ ... }

无论我做什么,对话框总是显示旧的 XP-Style 版本,而不是新的 Vista+ 版本。我还注意到,当我调试并查看一些参数时,链中某处有一个 protected 成员变量:SettingsSupportVistaDialog ,在本例中设置为 false .我不确定这是否是问题,或者在哪里/为什么可以设置。

有没有人有什么建议?

这是现有(XP 风格)对话框的屏幕截图
XP-Style Dialog

这是我想要的样子:
enter image description here

最佳答案

我发现了问题。我不得不深入研究 .NET 3.5 源代码,但结果是如果 Application.VisualStyleState未设置为 ClientAreaEnabledClientAndNonClientAreasEnabled将使用旧的 XP 样式对话框。

关于winforms - C# OpenFileDialog 在 Win7 中只显示 XP-Style,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13461759/

相关文章:

c++ - 如何将 FileDialog 限制到特定路径

c# - 为新的自定义控件扩展什么?

.net - 在编辑文本框时自动调出数字键盘 (.NET CF)

C# Windows 窗体应用程序无法从基于 Linux 的服务器正确读取文件

c++ - 如何判断(以编程方式)Windows 7 PC 上是否正在使用大字体

c# - 应用程序说网络驱动器不存在,但使用 OpenFileDialog 找到

c# - 如何在 Winforms 中创建类似 excel 的插入行为?

c# - 从 .NET WinService 在交互式登录用户下启动程序

python - 在 Windows 7 下从 python 启动时找不到 R 包

wpf - 使用MVVM和WPF通过OpenFileDialog使用路径更新文件名的文本