Open/SaveFileDialog类之间的区别以及它们在WPF表单中的使用

Jeb*_*Jeb 15 .net c# wpf visual-studio-2010 winforms

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

System.Windows.Forms.SaveFileDialog(在Assembly System.Windows.Forms.dll中)和Microsoft.Win32.SaveFileDialog(在Assembly PresentationFramework.dll中)?

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

  1. 它们的外观有细微差别吗?
  2. 使用System.Windows.Forms.SaveFileDialog的任何互操作性问题?或者这两个只是win32对话框?
  3. 这与使用Microsoft.Win32.SaveFileDialog 在Windows Vista中有问题有关吗?

提前致谢.

Col*_*ith 21

这是一个更好的解释(可能已经过时/与.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使应用程序膨胀.