1

Windows 似乎在一些地方使用了更现代的对话框来浏览和选择文件夹(我在网上找到了这个截图, http: //media.wiley.com/Lux/97/145397.image1.jpg),所以我想知道如果有任何方法可以访问该对话框并自己在程序中使用它。

我当然知道System.Windows.Forms.FolderBrowserDialog,但它仍在使用一种旧的 TreeView-esque 类型的 UI,它不再真正使用了(我担心这是有充分理由的)。

我见过一些这样的问题(例如,可以选择文件夹的 OpenFileDialog?)但它们已经过时,指的是第三方对话框(如果可能的话,我宁愿避免),或者两者兼而有之。

我只是错过了什么吗?我可以想象这种东西隐藏在其他库或 API/SDK 或其他东西中。令我惊讶的是,微软似乎在整个 Windows 中如此彻底地使用它而没有完全发布它,特别是因为我至少从 Windows 7 开始就已经看到它了。

4

1 回答 1

3

那是 OpenFileDialog 的 Vista 版本。底层本机接口是基于 COM 的,使用 FOS_PICKFOLDERS 选项调用IFileDialog::SetOpions() 方法。

这个特性没有直接暴露在 .NET 中,它仍然需要支持不支持 Vista 接口的旧操作系统。特别是 XP。如果您有能力不再支持 XP,或者愿意为旧操作系统编写仍使用 FolderBrowserDialog 的后备代码,那么您可以在Windows API 代码包库中找到与 IFileOpenDialog 互操作的代码。

于 2013-02-11T14:34:41.583 回答