本机文件打开/保存对话框(不带Windows窗体或WPF)

new*_*est 3 c# winapi openfiledialog dllimport

如何导入和使用本机打开文件对话框?在不使用Windows Forms或WPF的应用程序中,我是否有任何好处?或者只是参考一下?

Dav*_*nan 6

WinForms和WPF提供的标准文件对话框只是本机对话框的包装器.因此,最有必要使用这些托管的C#类.

如果您希望以任何方式自定义对话框(例如,向对话框添加控件),则可能存在使用本机API的情况.但这主要是因为你需要使用与Vista/7相同的XP定制技术.即使在纯本机代码中,自定义文件对话框也是非常重要的,如果合理的话,你应该真的避免这样做.

  • 虽然我认为WPF <4*可能*已经显示错误的打开/保存对话框提出了问题.我知道WPF 4显示正确的. (2认同)

Kat*_*ory 5

Windows API代码包中有常见对话框的包装器.在Vista之前发布的某些版本的Windows窗体和WPF在构造导致Vista(或Windows 7)的对话框时使用了一些参数,说"哦,你知道你想要什么,我不会给你全部歌唱 - 跳舞新版本的对话框." 从那时起,一直有服务包,新版本等处理.如果由于某种原因您无法获得正确的对话框,请首先为您正在使用的任何Visual Studio版本安装任何Service Pack.如果您仍然不满意,请尝试使用Code Pack.