我正在使用自定义WinForms和WPF控件自定义类似于Vista的OpenFileDialog
。我知道您可以为XP-like OpenFileDialog做模板,但这看起来很丑陋,不能满足我的要求。我知道您可以使用OpenFileDialog
对话框或通过Ookii自定义Microsoft's API Code Pack。这种方法的问题是它们不允许自定义控件,而仅允许控件的有限子集(Label
,TextBox
等)。
我最近得到的是下面的图片。使用API代码包的组合,对Shell进行了一些更改,这是一个为空格添加空标签的技巧,还有一堆丑陋的COM可以直接在我能关闭的OpenFileDialog上绘制控件。
这种方法的问题是,我必须在WndProc中禁用调整大小,因为CommonOpenFileDialog
中的控件部分具有流/换行布局,并且您不能动态地添加/删除调整大小的控件,或者如果已经显示了OpenFileDialog,则会发生灾难性的故障。
除了我尝试过的建议之外,或者任何像标准Vista一样的OpenFileDialog,但允许插入自定义控件的第三方产品,是否还有其他建议?
[
[我也尝试过使用API代码包中的ExplorerBrowser滚动自己的文件夹(如下图所示,但是尽管将COM API进行了组合,但似乎并没有一种在ExplorerBrowser中定义过滤器的方法。
[
使用WPF和XAML可以很容易地从头开始编写这类内容。如有必要,可以使用所需的简单子组件控件。
如果尝试修改现有文件对话框,将会受到限制,并且稍后可能会碰到砖墙。