4

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

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

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

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

有没有人有什么建议?

这是现有(XP 风格)对话框的屏幕截图 XP 样式对话框

这是我想要的样子: 在此处输入图像描述

4

1 回答 1

4

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

于 2012-11-26T15:48:28.097 回答