FolderBrowserDialog 有更新版本吗?

问题描述 投票:0回答:2

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

我当然知道

System.Windows.Forms.FolderBrowserDialog
,但它仍然使用旧的 TreeView 式 UI,并且不再真正使用(我担心这是有充分理由的)。

我见过一些此类问题(例如,可以选择文件夹的OpenFileDialog?),但它们已经过时了,请参阅第三方对话框(如果可能的话,我宁愿避免),或者两者都有。

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

c# windows user-interface dialog filesystems
2个回答
2
投票

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

此功能并未直接在.NET中公开,它仍然需要支持不支持Vista界面的旧操作系统。 XP尤其如此。如果您有能力不再支持 XP,或者愿意为旧操作系统编写仍使用 FolderBrowserDialog 的后备代码,那么您可以在 Windows API 代码包库中找到与 IFileOpenDialog 互操作的代码。


0
投票

他们做到了!他们最终更新了FolderBrowserDialog 的外观,使其与OpenFileDialog 和SaveFileDialog 保持一致!我惊呆了!很美丽!我感觉我是第一次听到德彪西。我不确定他们何时实施更新,但现在 WinForms 中已经有了。我想亲吻最终在微软推送更新的开发者。我花了很多时间向上级解释,经过测试和信任的 MS 文件夹浏览器确实是旧风格,编写一个更新的外观会推迟发布日期。但不能再多了!我喜欢它!

要使用新的和更新的FolderBrowserDialog 外观,只需更新到.NET 6.0。我不确定更新后的模态弹出窗口是否是在 6.0 之前添加的,但现在已经存在了。而且代码似乎在很大程度上是向前兼容的。我的样板 FBD 代码仅适用于新的弹出窗口。

© www.soinside.com 2019 - 2024. All rights reserved.