2013-02-11 51 views
1

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

我当然知道System.Windows.Forms.FolderBrowserDialog,但它仍然使用了一个旧的TreeView类型的UI,这个UI并没有被真正使用过(出于正当理由,我担心)。

我见过几种这样的问题(例如http://bytes.com/topic/c-sharp/answers/453226-openfiledialog-can-select-folders),但它们已经过时了,请参阅第三方对话框(如果可能,我宁愿避免),或者两者兼而有之。

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

+0

不幸的是,没有更新的FolderBrowserDialog。 – 2013-02-11 14:27:55

+0

看看这可以帮助你:http://stackoverflow.com/questions/576741/customising-the-browse-for-folder-dialog-to-show-the-path – 2013-02-11 14:28:23

+0

根据这个SO问题,对话被更新.NET 4: http://stackoverflow.com/questions/4007882/select-folder-dialog-wpf – BTownTKD 2013-02-11 14:31:17

回答

2

这是Vista版本的OpenFileDialog。底层本地接口是基于COM的,IFileDialog::SetOpions() method是使用FOS_PICKFOLDERS选项调用的。

此功能不是直接暴露在.NET中,它的负担仍然是支持不支持Vista界面的旧操作系统。 XP尤其如此。如果您可以承受不再支持XP,或者愿意编写旧操作系统仍然使用FolderBrowserDialog的后备代码,那么您可以在Windows API Code Pack library中找到与IFileOpenDialog互操作的代码。

相关问题