views:

5285

answers:

9

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"?

+4  A: 

Don't forget AvalonDock on Codeplex. I've seen it mentioned in other places.

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.

Anybody have any feedback/comments on AvalonDock?

Philipp Schmid
+3  A: 

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.

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

Just my two cents.

billb
I can't recommend ActiPro's Dock enough - it is an excellent docking solution (we used it with a Prism application). I usually loathe 3rd party controls, but this set of controls feel like they have come from Microsoft. The object API is logical, yet complete. We also used the ActiPro Ribbon, and this also was a great control to use. Highly recommended!
Brad Leach
Agreed. Given the price, the quality of the controls and support can't be beat. I also chose the Actipro library because of the small number of libraries compared to certain other packages.
Cameron MacFarland
I will be the voice going against ActiPro then, the serialization of the dock isn't complete, really a shame you can't deserialize toolbars docked in the document panes. (Edit: sorry, bill's answer doesn't deserve -1).
Florian Doyon
+2  A: 

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

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

Rick Ratayczak
+4  A: 

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

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.

siz
+12  A: 

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.

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

Alex_P
Alex_P
Only a couple of weeks after I posted the comment above the feature was added to AvalonDoc!There is now DocumentsSource property that can be bound to a collection of documents. And it works as a charm.
Alex_P
Have you made dockable toolbars using AvalonDock?
Number8
No I didn't, but hope to have look at it soon and will report here then.
Alex_P
Huzzah for itemssource!!!
Pierreten
Mabye I got a bad build, I downloaded the lastest build today and none of the samples worked. Everyone of them died for various reasons.
Kelly
Real support for binding in AvalonDock is inexistent. ItemsSource works as long as you give it a collection of DocumentContent/DockableContent, but I find the coupling and/or extra work this induces mind-numbing, at least in the projects I'm working on. I tried to hack together a MVVM-enabled fix of AvalonDock (of course, some features are quite difficult to convert, like undocking a window), but failed for various reasons, sometimes when I was _this_ close to a working solution. I find that AvalonDock in its current state forbids the use of best practices and don't really recommend it.
Alex Paven
+1  A: 

I have used a couple of WPF docking controls which all work fine except for one requirement I have. Namely, if I have a floating window I would like:

1 - the window's title to appear in Windows' task bar 2 - if the main application window is minimized I dont want it to minimise the floating windows also

Is there a WPF docking window component that would take care of those requirements?

freddy smith
+1  A: 

Try this: http://www.devzest.com/WpfDocking.aspx

It's a docking library with undo/redo functionality.

A: 

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.

A: 

Is there a Docking control that does a good job and provide good options for ReSizing? I want some docked windows to be of fixed width/Height and others to resize. Most of the Docking controls I have tried, doesn't provide good option to set minimum/maximum width. I have multiple windows, which I want to be docked at different locations, and want one window to occupy all the remaining space. I have tried ActiPro and Telerik Docking controls, without success. If you have tried something which you like, please do let me know.

Markus2k