Подтвердить что ты не робот

Разница между классами Open/SaveFileDialog и их использованием в форме WPF

Довольно любопытно, но было просто интересно, знает ли кто-нибудь разницу между использованием:

System.Windows.Forms.SaveFileDialog(в Assembly System.Windows.Forms.dll) и Microsoft.Win32.SaveFileDialog(в Assembly PresentationFramework.dll)?

Я использую версию PresentationFramework.dll в форме WPF, но в настоящее время я повторно использую какой-то старый код в форме, которая включает в себя версию System.Windows.Forms.dll и интересно, если:

  • Есть тонкая разница между их внешностью?
  • любые проблемы совместимости с использованием System.Windows.Forms.SaveFileDialog? Или оба это просто win32-диалоги?
  • Это просто для использования Microsoft.Win32.SaveFileDialog имеет проблемы в Windows Vista?

Спасибо заранее.

4b9b3361

Ответ 1

Здесь лучшее объяснение (может быть устаревшим/нерелевантным для более поздних версий .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.