本地文件打开/保存对话框(无需使用Windows Forms或WPF)

3

如何导入和使用本地的打开文件对话框?在不使用Windows Forms或WPF的应用程序中,我是否可以从中获得任何好处?还是只需引用它即可?


如果不是WinForms或WPF,那么应用程序的GUI基础是什么?还是你想从控制台应用程序中打开对话框? - Dan J
mOGRE(3D应用程序)。我只想避免不必要的依赖和负载。 - newGuest
3个回答

6
WinForms和WPF提供的标准文件对话框仅仅是本地对话框的包装器。因此,最好使用这些受管理的C#类。
如果您希望以任何方式自定义对话框(例如向对话框添加控件),则可能需要使用本机API。但这主要是因为您需要使用与Vista/7不同的XP自定义技术。即使在纯本地代码中,自定义文件对话框也是困难的,如果可以避免,应该尽量避免。

2
尽管我认为 WPF < 4 可能 显示了错误类型的打开/保存对话框,这引发了问题。我知道 WPF 4 显示正确的对话框。 - BoltClock
@BoltClock 你的意思是WPF<4在Vista/7上显示旧版对话框? - David Heffernan
看起来是这样的。WPF早期有报告和截图;解决方法是使用WinForms命名空间中的类,而不是Microsoft.Win32 - BoltClock

5

Windows API Code Pack中有常用对话框的包装器。在Vista之前发布的某些版本的Windows Forms和WPF在构建对话框时使用了一些参数,导致Vista(或Windows 7)说:“哦,你知道你想要什么,我不会给你所有歌舞升平的新版本对话框。” 从那以后,已经有了服务包、新版本等来解决这个问题。如果由于某种原因您无法获得正确的对话框,请首先安装您正在使用的Visual Studio版本的任何服务包。如果仍然无法满意,请尝试使用Code Pack。


+1个好建议,如果问题是WPF对话框在Vista/7上显示旧版文件对话框,请及时更新托管包装器。 - David Heffernan

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接