Just to point out, in my experience, WPF rendering is actually quite slow than Windows Forms, despite using DirectX. This is due to the fact that a lot of tessellation and layout calculations are performed on the processor side, which actually cancels the performance gain when using the GPU.
Just go to Google for “WPF Slow” or “WPF Performance,” and you'll find how awful developers are shocked to find out how much time and effort they spent converting WinForms to WPF because the rotation around the GPUs was wasted since The result is slower than the original application.
However ... I will say that. WPF is far superior to WindowsForms in terms of styles, graphics, developer productivity (data binding), animation, appearance, etc. If performance is really a problem, you can optimize in certain areas. For example, did you know that you can get an API for writing directly to a bitmap in WPF (see the WriteableBitmap class) to perform operations like GDI in memory? This is (surprisingly) about 20 times faster than the WPF primitives for some operations.
Similarly, you can use virtualization to improve the performance of datagrids, etc. Telerik has an example of its grid scrolling 1,000,000 lines in interactive frames.
In conclusion, think about what you are doing and see similar examples on the Internet. Are you doing real-time data collection and visualization or just a standard line of business applications? Comparison of such examples to understand what the structure is capable of will help you in your decision.
2013 Q3 Update
As an update, in various projects, I now see faster and faster WPF performance by moving anything and everything from the user interface stream. For example. Leave the UI thread for the UI only, do as much work as possible using the parallel task library or RX. Make everything asynchronous and do not block the UI thread while waiting.
Repair binding errors as they contribute to WPF performance issues.
You can move animations (for example, wait or load animations) to another stream for animation without glitches. You can use render-to-bitmap when performing animated transitions.
Short story? You can get great performance from WPF applications (as well as using the smoothing user interface), but you need to add a bit more work!