13

我正在寻找OpenFileDialog使用自定义 WinForms 和 WPF 控件自定义 Vista 类。我知道您可以将类似 XP 的 OpenFileDialog模板化,但这看起来很丑陋并且不能满足我的要求。我知道您可以OpenFileDialog使用Ookii对话框或Microsoft 的 API Code Pack自定义。这种方法的问题是它们不允许自定义控件,只允许有限的控件子集(LabelTextBox等)。

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

这种方法的问题是我必须在 WndProc 中禁用重新调整大小,因为其中的控件部分CommonOpenFileDialog具有流/换行布局,并且您无法在重新调整大小时动态添加/删除控件,否则如果出现灾难性故障OpenFileDialog 已经显示。

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

[

我还尝试使用 API 代码包中的 ExplorerBrowser(如下图所示)滚动我自己,但尽管梳理了 COM API,但似乎没有一种方法可以在 ExplorerBrowser 中定义过滤器。

[

4

1 回答 1

0

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

如果您尝试修改现有的文件对话框,您将受到限制,并且可能会在以后碰壁。

于 2019-10-08T14:58:05.027 回答