16

很好奇,但只是想知道是否有人知道使用之间的区别:

System.Windows.Forms.SaveFileDialog(在程序集 System.Windows.Forms.dll 中)和 Microsoft.Win32.SaveFileDialog(在程序集 PresentationFramework.dll 中)?

我在 WPF 表单中使用 PresentationFramework.dll 版本,但目前正在重新使用表单中的一些旧代码,其中包括显示 System.Windows.Forms.dll 版本并想知道是否:

  1. 他们的外表有细微的差别吗?
  2. 使用 System.Windows.Forms.SaveFileDialog 的任何互操作性问题?还是这两个都只是win32对话框?
  3. 这是否与使用 Microsoft.Win32.SaveFileDialog在 windows vista 中存在问题有关?

提前致谢。

4

1 回答 1

24

这是一个更好的解释(可能已经过时/与 .NET 的更高版本无关):

http://www.thomasclaudiushuber.com/blog/2008/04/12/vistas-savefiledialog-and-openfiledialog-in-wpf/


虽然它们基本上做同样的事情......它们是不同的包装......围绕 WIN32 功能。

但是,在 WPF ( Microsoft.Win32) 版本的SaveFileDialog.

如何扩展 WPF 打开/保存对话框:

如果您想要更多更新版本的“通用”文件对话框(例如 Windows 7 样式的对话框),您可以使用“Windows API 代码包”(其中一些已被纳入 .NET 4):

因此,您选择哪一个取决于您的需求....如果您不进行任何自定义,那么您可以使用 Windows.Forms 之一。

请注意,使用 Windows.Forms 会使您的应用程序因额外的 DLL 而膨胀。

于 2012-09-07T10:20:56.713 回答