Windows似乎在一些地方使用了一个更现代的对话框来浏览和选择文件夹(我在网上发现了这个截图,http://media.wiley.com/Lux/97/145397.image1.jpg),所以我想知道是否有办法访问该对话框并使用它我自己在一个程序中。
我当然知道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 :(得分:2)
这是OpenFileDialog的Vista版本。底层本机接口是基于COM的,IFileDialog::SetOpions() method是使用FOS_PICKFOLDERS选项调用的。
此功能不直接在.NET中公开,它仍然需要支持不支持Vista界面的旧操作系统。特别是XP。如果您不能再支持XP,或者愿意为旧操作系统编写仍然使用FolderBrowserDialog的后备代码,那么您可以在Windows API Code Pack library中找到与IFileOpenDialog互操作的代码。