C#OpenFileDialog仅在Win7中显示XP-Style

时间:2012-11-19 20:36:00

标签: 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风格版本而不是新的Vista +版本。我还注意到,当我调试并查看一些参数时,链中的某个地方有一个受保护的成员变量:SettingsSupportVistaDialog,在此实例中设置为false。我不确定这是否是问题,或者在何处/为何可以设定。

有人有任何建议吗?

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

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

1 个答案:

答案 0 :(得分:4)

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