我正在寻找OpenFileDialog
使用自定义 WinForms 和 WPF 控件自定义 Vista 类。我知道您可以将类似 XP 的 OpenFileDialog模板化,但这看起来很丑陋并且不能满足我的要求。我知道您可以OpenFileDialog
使用Ookii对话框或Microsoft 的 API Code Pack自定义。这种方法的问题是它们不允许自定义控件,只允许有限的控件子集(Label
、TextBox
等)。
我得到的最接近的是下图。使用 API 代码包的组合,对 Shell 进行一些更改,为间距添加空标签的黑客工作,以及一堆丑陋的 COM 直接在 OpenFileDialog 上绘制控件,我能够接近。
这种方法的问题是我必须在 WndProc 中禁用重新调整大小,因为其中的控件部分CommonOpenFileDialog
具有流/换行布局,并且您无法在重新调整大小时动态添加/删除控件,否则如果出现灾难性故障OpenFileDialog 已经显示。
除了我尝试过的或任何第三方产品,是否有任何建议可以作为标准的类似 Vista 的 OpenFileDialog 但允许插入自定义控件?
[
我还尝试使用 API 代码包中的 ExplorerBrowser(如下图所示)滚动我自己,但尽管梳理了 COM API,但似乎没有一种方法可以在 ExplorerBrowser 中定义过滤器。
[