Difference between Open/SaveFileDialog classes and their use in a WPF form
Quite curious, but was just wondering if anyone knows the difference between using:
System.Windows.Forms.SaveFileDialog (in Assembly System.Windows.Forms.dll) and Microsoft.Win32.SaveFileDialog(in Assembly PresentationFramework.dll)?
I use the PresentationFramework.dll version within the WPF form, but am currently re-using some old code in the form which includes showing the System.Windows.Forms.dll version and wondering if:
- there is a subtle difference between their appearance?
- any interoperability issues with using the System.Windows.Forms.SaveFileDialog? Or are both these just win32 dialogs anyway?
- is this just to do with using Microsoft.Win32.SaveFileDialog has issues in windows vista?
Thanks in advance.
Here's a better explanation (might be out of date/irrelevant for later versions of .NET):
While they essentially do the same thing...they're different wrappers...around the WIN32 functionality.
http://rpelepei.blogspot.co.uk/2010/01/using-open-file-dialog-window-in-wpf.html (see Why Bother Using the Win32 Version?)
However, there are a number of potential bugs in the WPF (Microsoft.Win32) version of the SaveFileDialog.
How to extend WPF Open/Save Dialogs:
If you want more updated versions of the "Common" file dialogs (e.g. Windows 7 style ones) you can use the "Windows API Code Pack" (some of this has been rolled into .NET 4):
So, which one you choose depends on your needs....if you aren't doing any customizations then you could get away with the Windows.Forms one.
Note using the Windows.Forms one will bloat your application a bit with an extra DLL.