我们正在实现一个需要可停靠窗口的应用程序,类似于 Visual Studio 2005/2008,但与 VS 的单一站点不同,它具有多个“停靠站点”。有没有人为此推荐一个好的图书馆 - OSS或商业?我知道 Infragistics 有一个,还有来自 DevComponents 的 Divelement 的 SandDock 和 WPF-Dock,以及 ActiPro 的 Docking & MDI 产品。CodeProject上也有一个。有人用过这些库吗?体验是好是坏?如果您有使用其中之一的经验,它是否支持多个“对接站点”?
8 回答
Codeproject 中的一个是AvalonDock——我们已经使用了半年多,但我们离发布还很远,所以我们有灵活性。在使用 AvalonDock 之前,我们尝试了 Infragistix、ActiPro、SandDock 以及其他一些。尽管 AvalonDock 不是 100% 没有错误的(那是什么?)没有主要错误,但它非常稳定、快速并且具有所有功能。它确实支持多个对接站点。
它是一个开源项目,正在积极开发中,因此正在发现并修复错误。到目前为止的良好体验。
我已经使用 ActiPro 库几个月了,效果很好。它确实支持多个对接站点。支持非常出色,您可以获得 WPF 中缺少的一些其他控件(日期选择器等)。对我来说,150 美元的钱花得很值。它开箱即用,没有大惊小怪。
我们曾经使用 Divements 来实现 WinForm 控件,但我们认为 Actipro 有更好的支持,所以我们切换到 WPF。
只是我的两分钱。
不要忘记GitHub 上的AvalonDock(WPF 工具包的一部分)。我在其他地方看到过。
最初我打算使用 ActiPro 库(主要是因为我已经在使用他们的功能区),但我可能会给 AvalonDock 一个机会,因为它是开源的。
有人对 AvalonDock 有任何反馈/意见吗?
我使用 DotNetBar,因为它有功能区/底座和更多控件,而且价格便宜。这很棒。
SandDock 没问题。我们将它用于项目的 POC 阶段。我在他们的布局保存机制中发现了一些非常糟糕的错误。它生成了 XML,但随后无法加载该 XML;它抛出了一个异常!实际上,我通读了所有生成的 XML,并且在每次生成 XML 之后都必须编写代码来稍微修改它。这似乎不是一个经过深思熟虑的设计。我希望有常见的 WPF 基本类型,例如
Infragistics 稍微好一点,但有问题。事实上,如果您尝试在只有 .Net 3.0 而没有 .Net 3.5 的机器上运行它,它就无法正常工作。Infragistics 有一个突出的开发问题,我不知道他们在解决这个问题上是否取得了任何进展。在浮动窗口并拖动它时,我也有几次崩溃(怀疑这与上面的 .Net 3.0/3.5 问题有关)。我发现这个控件的样式非常不直观。
我尝试了这里列出的所有库,它们在某种程度上都有问题。虽然它们很贵,但我会推荐 Telerik 和 Infragistics。Nevron 值得一提,因为他们的库是我见过的最好的库,但它是针对 WinForms 的。
1 年后... AvalonDock 现在稳定而强大。还有一个“AvalonDock 包装器”可以简化使用它而不减少它的可能性。请参阅http://sofawpf.codeplex.com/
这是另一个:
http://www.essentialobjects.com/Products/EOWpf/DockView.aspx
这个有许多可以动态切换的内置皮肤。它还有许多可以独立使用的单独控件(例如“Splitter”控件)。