我正在使用一个使用 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 风格)对话框的屏幕截图

这是我想要的样子:

最佳答案

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

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

10-11 04:09