【问题标题】:How do I customize the FileOpen dialog for >= Vista?如何为 >= Vista 自定义 FileOpen 对话框?
【发布时间】:2013-01-29 06:15:26
【问题描述】:

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

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

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

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

[

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

[

【问题讨论】:

  • IFileDialogCustomize 支持大量的装饰物。但它不是无限可扩展的,并且您没有您可能正在寻找的灵活性。也不可能使用全新的东西。您无能为力,只能满足于支持的内容。
  • 为什么您要尝试“自定义 FileOpen 对话框”?你的“自定义控件”会做什么?
  • @DourHighArch - 我想添加一个缩略图幻灯片,如第一张图片所示,但用于自定义文件类型。工具提示中需要包含其他数据。用户还可以选择定义一些影响缩略图呈现方式的配置参数。这不仅仅是为文件类型设置 IPreviewHandler 的问题。
  • 为什么不从头开始设计对话框?
  • 这家伙创建了一个树视图目录。 youtube.com/… 它可以给你一些提示来创建你自己的 OpenFileDialog。

标签: .net wpf winforms windows-7 openfiledialog


【解决方案1】:

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

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

【讨论】:

  • @Paul_Sumpner:提供一些示例代码会很有帮助,不是吗?
猜你喜欢
  • 1970-01-01
  • 2010-12-10
  • 2014-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-23
  • 2011-09-03
相关资源
最近更新 更多