Tech Ed: WPF is really, really cool.
So here I am soakin’ up the WPF goodness here at TechEd. I have been to so many talks now, my mind needs to take a nap. Good thing I took notes.
So my more “in depth” coverage will have to come later after I process this stuff, but here are some highlights about WPF that I have picked up.
- WPF is deployable on both the desktop and the browser (called an XBAP…another winning name)
- It uses the full .NET framework (unlike Silverlight which I will talk about later).
- You can use Click Once to deploy it (while it is outside of the scope of this blog, if you are developing desktop apps, you owe it to yourself to look into that tech).
- WPF is made for 2D - Using scalable, vector-based graphics, the WPF animation, images, and graphics are really efficient.
- WPF is made for 3D - Since Direct3D is the foundation for WPF’s graphical capabilities, it can do just about anything (including games, albeit on a somewhat restricted basis).
- What really struck me when watching the demos and such is how easy doing the animation stuff is. I have done my fair share of Flash, and I always thought that even the relatively easy stuff was overly tedious. This just isn’t the case when working with Blend.
- Controls get an upgrade
- Textboxes can have a spell checker embedded - Not 100% sure how this works, but its a pretty sweet idea.
- All controls natively support Ink for use in tablets, or just with a mouse. For the most part, this is just fluff, but I can definitely think of some scenarios where this would be genuinely cool
- Textblock is like a normal textbox, but on steriods. It is incredibly customizable and supports wrapping, trimming, and formatting.
- InkCanvas is a control that uses Ink as its primary input. Think Surface, and you will see the potential
- Flow Documents. These things are pretty sweet. Basically they are completely scalable panels that can support a newspaper-like layout (I will have some cool links to post when I get back showing this in action).
- WPF is fully skinnable. While you can’t use CSS (this is a desktop technology afterall), the framework does support skinning and theming so if your client suddenly changes your color scheme, you don’t have to redo everything
- Panels have the ability to size to content which basically is like the autosize on a label, but the content inside can be just about any control
- To use all this graphic goodness, the devs recommend that the client computer has a DirectX 9 capable graphics card. All other requirements are pretty vanilla.

