It’s time to start

21 09 2008

If you’re unfamiliar with WPF, building your first application can be a daunting experience. There are so many new concepts to master, that even simple things can turn into a nightmare.

In my opinion, the first two things to do, to enter in the WPF world, is to list all the new concepts that you want to discover and find an application (or a custom control) covering these concepts.

As a newbie in WPF, I chose to make a custom control (with its demo application) covering a wide range of concepts such as layout, styles, templates, brushes, routed events, theming/skinning, animation and resource management. To do this, I chose to clone the left side pane of Windows XP explorer, known as “Explorer bar”.

To make the experience more exciting and realistic, I chose to make this custom control as a control (part of a professional toolkit) with many features combining ease of use and high customization. The screenshots below give an overview of the goal to achieve. 

Main requirements

  • duplicates Windows XP explorer bar functionalities,
  • the explorer bar displays multiple sections, each section with a header and an expander,
  • expanders use animations to fade in (out) and slide down (up) when expanding (collapsing),
  • some sections can be designated as primary sections for a different look and feel,
  • optionally the explorer bar allows only one expander to be expanded at a given time,
  • at least five built-in themes (classic, aero, luna blue, luna olive green and luna silver),
  • vertical scrollbar auto-added as needed.

As the project progressed, I will publish new posts to keep you informed of the main problems met and the technical solutions set up to resolve them. Once the project is completed, I will write and publish a summary article for the “CodeProject” site.

I hope that this approach will seduce you and that you will share your comments or suggestions to improve both the project and this blog.

The next post will discuss the mechanisms to create a “lookless” control and to give it the ability to replace its styles and templates dynamically.

Advertisements