关于 WPF 停靠库的建议

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/344205/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-08 19:50:49  来源:igfitidea点击:

Recommendations on a WPF Docking Library

wpfdockable

提问by Brian Stewart

We are implementing an application that needs dockable windows, similar to Visual Studio 2005/2008, but with multiple "docking sites", unlike VS's single one. Does anyone have a recommendation on a good library for this - either OSS or commercial? I am aware that Infragistics has one, as well as Divelement's SandDock and WPF-Dock from DevComponents, as well as ActiPro's Docking & MDI product. There is also one on CodeProject. Has anyone used any of these libraries? Was the experience good or bad? If you have experience with one of them, does it support multiple "docking sites"?

我们正在实现一个需要可停靠窗口的应用程序,类似于 Visual Studio 2005/2008,但具有多个“停靠站点”,与 VS 的单个站点不同。有没有人为此推荐一个好的库 - 无论是 OSS 还是商业?我知道 Infragistics 有一个,还有来自 DevComponents 的 Divelement 的 SandDock 和 WPF-Dock,以及 ActiPro 的 Docking & MDI 产品。CodeProject上也有一个。有没有人使用过这些库?体验是好是坏?如果您对其中之一有经验,它是否支持多个“停靠站点”?

采纳答案by billb

I've been using the ActiPro library for several months and it's done me well. It does support multiple docking sites. The support is outstanding and you get some other controls (date picker, etc) that are missing from WPF. To me, for $150 it's money well spent. It worked out of the box, no fuss.

我已经使用 ActiPro 库几个月了,它做得很好。它确实支持多个对接站点。支持非常出色,您可以获得 WPF 中缺少的一些其他控件(日期选择器等)。对我来说,150 美元是花得值的钱。它开箱即用,没有大惊小怪。

We used to use Divelements for WinForm controls but we think Actipro has better support, so we switched for WPF.

我们曾经使用 Divelements 作为 WinForm 控件,但我们认为 Actipro 有更好的支持,所以我们切换到 WPF。

Just my two cents.

只有我的两分钱。

回答by Alex_P

The one from Codeproject is the AvalonDock- we use it for more then half a year now, but we're far from release yet so we have the flexibility. Before ending up with AvalonDock we tried Infragistix, ActiPro, SandDock and may be some others. Even though AvalonDock is not 100% bug free (well what is?) there are no major ones, it is very stable, fast and has all the functionality. It does support multiple docking sites.

Codeproject 的一个是AvalonDock——我们现在使用它已经有半年多了,但我们离发布还很远,所以我们有灵活性。在最终使用 AvalonDock 之前,我们尝试了 Infragistix、ActiPro、SandDock 以及其他一些。尽管 AvalonDock 不是 100% 没有错误(那是什么?)也没有主要错误,但它非常稳定、快速并且具有所有功能。它确实支持多个对接站点。

Its an open source project and is in active development, so bugs are beeing found and fixed. Good experience so far.

它是一个开源项目并且正在积极开发中,因此正在发现并修复错误。到目前为止的良好体验。

回答by Philipp Schmid

Don't forget AvalonDockon GitHub (part of WPF Toolkit). I've seen it mentioned in other places.

不要忘记GitHub 上的AvalonDock(WPF 工具包的一部分)。我在其他地方看到有提到过。

Initially I was going to use the ActiPro library (mostly because I am already using their ribbon), but I might give AvalonDock a chance since it is open source.

最初我打算使用 ActiPro 库(主要是因为我已经在使用他们的功能区),但我可能会给 AvalonDock 一个机会,因为它是开源的。

Anybody have any feedback/comments on AvalonDock?

有人对 AvalonDock 有任何反馈/意见吗?

回答by Rick Ratayczak

I use DotNetBar, because it has ribbon/dock and more controls, and it's inexpensive. It's great.

我使用 DotNetBar,因为它有功能区/底座和更多控件,而且价格便宜。这很棒。

http://www.devcomponents.com/dotnetbar-wpf/

http://www.devcomponents.com/dotnetbar-wpf/

回答by Szymon Rozga

SandDock is alright. We used it for a POC phase of a project. I found some pretty bad bugs in their layout saving mechanism. It generated XML, but then couldn't load this XML back; it threw an exception! I actually read through all the generated XML and had to write code to modify the XML slightly after each time it was generated. It did not seem like it was a well thought out design; I was hoping for common WPF base types like

SandDock 没问题。我们将它用于项目的 POC 阶段。我在他们的布局保存机制中发现了一些非常糟糕的错误。它生成了 XML,但随后无法加载此 XML;它抛出了一个异常!实际上,我通读了所有生成的 XML,并且在每次生成 XML 后都必须编写代码对 XML 稍作修改。这似乎不是一个深思熟虑的设计。我希望有常见的 WPF 基本类型,例如

Infragistics is a bit better but buggy. In fact, if you try running it on a machine that only has .Net 3.0 and no .Net 3.5, it doesn't work correctly. Have an outstanding dev issue with Infragistics and I don't know if they've made any progress on a fix for this. I've also had it crash a few times when floating a window and dragging it around (suspect this has to do with the .Net 3.0/3.5 issue above). I've found styling this control to be pretty un-intuitive.

基础设施要好一些,但有问题。事实上,如果您尝试在只有 .Net 3.0 而没有 .Net 3.5 的机器上运行它,它无法正常工作。Infragistics 有一个突出的开发问题,我不知道他们是否在修复方面取得了任何进展。在浮动窗口并拖动它时,我也有几次崩溃(怀疑这与上面的 .Net 3.0/3.5 问题有关)。我发现设置此控件的样式非常不直观。

回答by user275587

I tried all the libraries listed here and they're all buggy to some extent. Although they are pricy I would recommend Telerik and Infragistics. Nevron merits a mention because their library is the best I've seen but it's for WinForms.

我尝试了这里列出的所有库,它们在某种程度上都有问题。虽然它们很贵,但我会推荐 Telerik 和 Infragistics。Nevron 值得一提,因为他们的库是我见过的最好的,但它是针对 WinForms 的。

回答by qay

1 year later ... AvalonDock is now stable and robust. There's also an "AvalonDock wrapper" that simplifies working with it without reducing its possibilities. See http://sofawpf.codeplex.com/

1 年后... AvalonDock 现在稳定而健壮。还有一个“AvalonDock 包装器”,可以在不降低其可能性的情况下简化使用它。见http://sofawpf.codeplex.com/

回答by Jason

Here is another one:

这是另一个:

http://www.essentialobjects.com/Products/EOWpf/DockView.aspx

http://www.essentialobjects.com/Products/EOWpf/DockView.aspx

This one has a number of built-in skins that you can switch dynamically. It also has many individual controls (such as a "Splitter" control) that you can use independently.

这个有许多可以动态切换的内置皮肤。它还具有许多可以独立使用的单独控件(例如“Splitter”控件)。