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

时间:2011-06-17 19:32:46

标签: c# winapi dllimport openfiledialog

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

3 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:5)

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

答案 2 :(得分:1)

这是您在申请时所做的事情。如果是使用Windows窗体编写的,请使用System.Windows.Forms.OpenFileDialog;如果用WPF编写,请看这里: OpenDialog for WPF 如果出于某些特殊原因你必须反对Win32 api,请继续阅读GetOpenFileName: http://msdn.microsoft.com/en-us/library/ms646927%28v=vs.85%29.aspx