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:

  1. there is a subtle difference between their appearance?
  2. any interoperability issues with using the System.Windows.Forms.SaveFileDialog? Or are both these just win32 dialogs anyway?
  3. 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.

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.

Need Your Help

Trying to use free() to understand how it works

c debugging pointers malloc free

To understand the usage of free in the C programming language I tried running this code on Ubuntu, but on running the EXE file I am receiving a SIGABRT error. Why is the program not exiting normall...

Mongo. how to check if field is a number

mongodb mongodb-query

How to select mongodb documents where field is a number?