I’m delighted to see that Infragistics have just released their NetAdvantage control set for WPF. It’s a huge download: over 100MB, so either the controls are very big, the documentation is extremely verbose, or there are lots of samples included! This control set nicely fills the gaps in the capabilities currently provided by WPF, including a data grid, charting controls and an Office ribbon implementation that looks pixel-perfect to me.
Complex controls like an Office ribbon clearly benefit hugely from XAML. The ability to declaratively create nested collections really makes what would otherwise be a painstaking and error-prone task really easy. In the case of Infragistics’ ribbon, you just declare a XamRibbon element that contains a RibbonTabItem that contains a ButtonGroup that contains the constituent buttons. It’s almost self-documenting, because it so closely parallels the actual visual structure of the ribbon. Adjusting the visual theme of the ribbon is as easy as any other WPF project – just merge in a new resource dictionary containing the changes you want to make. We’ve recently released a ribbon ourselves as part of an MFC feature pack for C++ developers, but the difference in complexity ably demonstrates why WPF is such a powerful platform for building heavy-duty UI.
In the interest of fairness, I should also highlight some of the other great controls out there: Xceed have a great (free) data grid, ComponentOne also have a data grid and chart control, along with a bunch of calendaring components, DevComponents also have a very impressive Office ribbon and a Visual Studio-esque docking control, IdentityMine have a 3D carousel as part of their Blendables toolkit, and Actipro have yet another Office ribbon along with a wizard control.
Shamelessly stolen from the Infragistics product manager’s blog, here’s a screenshot that shows off the kind of application you can build very quickly with this control set: