16

非常に好奇心が強いですが、誰かが使用の違いを知っているかどうか疑問に思っていました:

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を使用することと関係がありますか?WindowsVistaで問題がありますか?

前もって感謝します。

4

1 に答える 1

24

より良い説明は次のとおりです(.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でアプリケーションが少し肥大化することに注意してください。

于 2012-09-07T10:20:56.713 に答える