我正在使用使用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风格)对话框的屏幕截图
这就是我想要它的样子:
答案 0 :(得分:4)
我发现了问题。我不得不深入研究.NET 3.5源代码,但事实证明,如果Application.VisualStyleState
未设置为ClientAreaEnabled
或ClientAndNonClientAreasEnabled
,则将使用旧的XP风格对话框。< / p>