One of the true powers of WPF is the ability to style or template all the controls you have in your application. In windows forms, this is obscenely difficult, and very time consuming.
For a Winforms application I have worked on, I elected the free Krypton Toolkit. This is by far and away the best toolkit available, because it is intuitive and very easy to use. As time has passed more and more controls have been added to the free toolkit, but as is always the case, one always wants something that is not available, that ends up being on a ‘wishlist’.
This has always been the way with third party independent software vendors, where users request their most needed components. A good look at some third party Windows Presentation Foundation resource dictionaries from reuxables leaves one nothing short of gobsmacked! In Windows forms or Microsoft Foundation Classes it would have taken a very long time to achieve these designs (in C# or C++ code), yet a single individual has been able to create such jaw-dropping designs.
Presently, an area I’m not too happy about in WPF, is the structuring of the resource dictionaries, as it is liable to become very messy very quickly. Nikhil Kothari has run into this issue with Silverlight and I presume it will be remedied by the time .NET 4.0. is released.
Nevertheless, once you have the basics of WPF underneath your belt, it is possible to create applications of unprecedented quality and beauty with considerably less effort than years of yore. I literally want to ditch the winforms application I’m working on at present. That just how exciting WPF is to me now.