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

问题描述 投票:11回答:1

我正在使用自定义WinForms和WPF控件自定义类似于Vista的OpenFileDialog。我知道您可以为XP-like OpenFileDialog做模板,但这看起来很丑陋,不能满足我的要求。我知道您可以使用OpenFileDialog对话框或通过Ookii自定义Microsoft's API Code Pack。这种方法的问题是它们不允许自定义控件,而仅允许控件的有限子集(LabelTextBox等)。

我最近得到的是下面的图片。使用API​​代码包的组合,对Shell进行了一些更改,这是一个为空格添加空标签的技巧,还有一堆丑陋的COM可以直接在我能关闭的OpenFileDialog上绘制控件。

这种方法的问题是,我必须在WndProc中禁用调整大小,因为CommonOpenFileDialog中的控件部分具有流/换行布局,并且您不能动态地添加/删除调整大小的控件,或者如果已经显示了OpenFileDialog,则会发生灾难性的故障。

除了我尝试过的建议之外,或者任何像标准Vista一样的OpenFileDialog,但允许插入自定义控件的第三方产品,是否还有其他建议?

[“”

[我也尝试过使用API​​代码包中的ExplorerBrowser滚动自己的文件夹(如下图所示,但是尽管将COM API进行了组合,但似乎并没有一种在ExplorerBrowser中定义过滤器的方法。

[“”

.net wpf winforms windows-7 openfiledialog
1个回答
0
投票

使用WPF和XAML可以很容易地从头开始编写这类内容。如有必要,可以使用所需的简单子组件控件。

如果尝试修改现有文件对话框,将会受到限制,并且稍后可能会碰到砖墙。

© www.soinside.com 2019 - 2024. All rights reserved.