在WPF表单中,Open/SaveFileDialog类的区别及其使用方法
在WPF表单中,Open/SaveFileDialog类的区别及其使用方法
我很好奇,只是想知道是否有人知道使用System.Windows.Forms.SaveFileDialog(在程序集System.Windows.Forms.dll中)和Microsoft.Win32.SaveFileDialog(在程序集PresentationFramework.dll中)之间的区别?
我在WPF表单中使用PresentationFramework.dll版本,但目前正在重用一些包含显示System.Windows.Forms.dll版本的旧代码,我想知道:
1. 它们的外观是否有微小的差异?
2. 使用System.Windows.Forms.SaveFileDialog是否存在任何互操作性问题?或者这两个只是Win32对话框?
3. 这只是因为在Windows Vista中使用Microsoft.Win32.SaveFileDialog存在问题吗?
提前感谢。
问题的出现的原因是在WPF中,有两个不同的文件对话框类:OpenFileDialog和SaveFileDialog。尽管它们本质上做的事情是一样的,但它们是对WIN32功能的不同封装。
然而,在WPF的SaveFileDialog中存在一些潜在的bug。解决方法包括使用Windows API Code Pack来获取更新的文件对话框,或者使用Windows.Forms的文件对话框。但需要注意的是,使用Windows.Forms的文件对话框会增加额外的DLL文件。
除此之外,还可以通过扩展WPF的OpenFileDialog和SaveFileDialog来自定义文件对话框的功能。
总之,选择哪种文件对话框取决于需求。如果不需要自定义功能,可以使用Windows.Forms的文件对话框。如果需要更现代的文件对话框,可以使用Windows API Code Pack。
以上提供的解决方法可以帮助解决在WPF中使用文件对话框的一些问题。