如何为> = Vista自定义FileOpen对话框?

Bri*_*len 11 .net wpf openfiledialog windows-7 winforms

我希望通过自OpenFileDialog定义WinForms和WPF控件自定义Vista .我知道你可以模拟类似XP的OpenFileDialog,但看起来很丑陋并且不能满足我的要求.我知道您可以OpenFileDialog使用Ookii对话框或Microsoft的API代码包自定义.这种方法的问题是,他们不允许自定义控件,只有控制(有限的子集Label,TextBox等等).

我得到的最接近的是下面的图像.使用API​​代码包的组合,对Shell的一些更改,为空格添加空标签的黑客工作,以及一堆丑陋的COM直接在OpenFileDialog上绘制控件我能够接近.

这种方法的问题是我必须在WndProc中禁用重新调整大小,因为它的控件部分CommonOpenFileDialog有一个flow/wrap布局,你不能动态添加/删除重新调整大小的控件,否则你会遇到灾难性的失败OpenFileDialog已经显示出来了.

是否有任何建议超出我的尝试或任何第三方产品作为标准的Vista类OpenFileDialog,但允许插入自定义控件?

[

我也尝试使用API​​代码包中的ExplorerBrowser滚动自己(如下图所示),但是尽管梳理了COM API,似乎没有办法在ExplorerBrowser中定义过滤器.

[

Pau*_*ner 0

可以使用 WPF 和 XAML 轻松地从头开始编写此类内容。如有必要,可以使用您想要的简单子组件的控件。

如果您尝试修改现有的文件对话框,您将受到限制,并且稍后可能会遇到困难。