Robert's blog
Robert Važan

JungleControls: Free WPF controls for you app

Assorted WPF controls including property sheet, selectable text block, stat counter, intelligent popup, color filter, and technical controls.

I just launched brand new opensource WPF controls library project JungleControls. I will publish all my general-purpose controls through the library and I encourage you to do the same (yes, contribs are welcome).

You can get it from Nuget. Source code is in JungleControls project on Bitbucket.

Currently the following controls are part of the library:

Perhaps, someday in the future, Win8 and other variants of WPF will be supported, but now it's WPF. Contributors wishing to add Win8 support are sincerely welcome.

Besides being a useful resource for developers and convenient dumping ground for general-purpose controls from my other projects, JungleControls demonstrates highly productive control authoring techniques.

JungleControls utilizes Assisticant and view models internally while presenting innocently looking dependency properties to the outside world. A very thin layer of facade controls is used to make app developers believe they are using real controls.

I have refrained from making the controls lookless. While you can still provide your own ControlTemplate, there are no PARTs and no UI-less behavior. It's up to you to redefine the behavior when you redefine the looks.

I have instead opted for allowing templating of various control pieces directly via templates (HeaderTemplate, ContentTemplate). This is much easier to implement while providing users with almost the same level of visual flexibility.

Most of the time though, you should be fine just setting properties on the control. There are plenty of properties for adjusting every aspect of the control. Properties are much easier to use in styles and with bindings than templates anyway. If you run out of customization options, it's really easy to develop yet another control. It's often way easier than trying to mess around with control templates.

Anyway, enjoy the library and remember to contribute a patch or two :)