Open / SaveFileDialog类与它们在WPF表单中的使用之间的区别
非常好奇,但只是想知道是否有人知道使用之间的区别:
System.Windows.Forms.SaveFileDialog(在Assembly System.Windows.Forms.dll中)和Microsoft.Win32.SaveFileDialog(在Assembly PresentationFramework.dll中)?
我在WPF表单中使用PresentationFramework.dll版本,但我目前正在重新使用表单中的一些旧代码,其中包括显示System.Windows.Forms.dll版本并想知道是否:
- 他们的外表有细微差别吗?
- 使用System.Windows.Forms.SaveFileDialog的任何互操作性问题? 或者这两个只是win32对话框?
- 这与使用Microsoft.Win32.SaveFileDialog在Windows Vista中有问题有关吗?
提前致谢。
这是一个更好的解释(可能已经过时/与.NET的更高版本无关):
http://www.thomasclaudiushuber.com/blog/2008/04/12/vistas-savefiledialog-and-openfiledialog-in-wpf/
虽然他们基本上做同样的事情……他们是不同的包装器……围绕WIN32function。
-
WPF是否有本机文件对话框?
-
http://rpelepei.blogspot.co.uk/2010/01/using-open-file-dialog-window-in-wpf.html (请参阅为何使用Win32版本?)
但是, SaveFileDialog
的WPF( Microsoft.Win32
)版本中存在许多潜在的错误。
-
WPF中的SaveFileDialog错误
-
WPF Open FIle Dialog主题
-
http://social.msdn.microsoft.com/Forums/en-SG/wpf/thread/03b4e9d8-4039-4e67-bf2d-5d41f65376cb
如何扩展WPF打开/保存对话框:
如果您想要更新版本的“通用”文件对话框(例如Windows 7样式对话框),您可以使用“Windows API代码包”(其中一些已经转换为.NET 4):
那么,你选择哪一个取决于你的需求….如果你没有做任何自定义,那么你可以逃脱Windows.Forms之一。
注意使用Windows.Forms会使用额外的DLL使应用程序膨胀。