在.Net中自定义OpenFileDialog

时间:2010-11-05 13:12:52

标签: .net wpf windows-7 windows-xp openfiledialog

需要在Windows XP和Windows Vista / 7中创建原生外观的自定义.Net OpenFileDialog。添加新的控件,等等。有没有办法在.Net(WPF专门)中自定义标准的OpenFileDialog?我已经查看了像OpenFileDialogEx这样的解决方案,但所有关于WINAPI挂钩的东西对我来说都是不可接受的。也许有人知道通过Reflection或其他东西提取原生对话的方法?如何实现Windows Vista / 7中的本机OpenFileDialog?它是用WPF编写的吗?提前谢谢。

问候,帕维尔。

3 个答案:

答案 0 :(得分:4)

习惯它,因为它需要什么。 OpenFileDialog不是用WPF编写的,该对话框在Windows中作为非托管代码存在。托管包装器在旧版本上使用GetOpenFileName(),在当前版本上使用IFileOpenDialog COM接口。对于后者,IFileDialogCustomize接口旨在自定义对话框。

这些接口只能从C ++程序中轻松使用,C ++程序是shell编程的经典祸害。必须支持XP机器也是一个相当令人头疼的问题,实际上你通过GetOpenFileName()坚持遗留对话。这是代码项目的作用。

答案 1 :(得分:3)

Windows API Code Pack中有一个OpenFileDialog包装器。它可以让你解决很多P /自己调用它的难度。您可以从WPF,Windows Forms等中使用它。

答案 2 :(得分:2)

您可以查看此CodeProject链接。

这是一种有趣的方式来创建您可能想要的任何文件对话框。作者还提供了WPF版本的链接以及用XP编写的原始文章。

相关问题