Three controls from the WPF Toolkit have been moved into the core release. Specifically, they are the DataGrid, DatePicker, and Calendar controls. As these already have Silverlight counter-parts, Microsoft is promising “99% API- and behaviorally-compatible” between the WPF and Silverlight versions. The DataGrid is of particular importance, as the lack of one has been often cited as proof that WPF isn’t appropriate for Line-of-Business applications.
There is already two post-4.0 releases planned, each including additional controls. The “Bag O'Tricks” will include AnimatingTilePanel, ColorPicker, InfoTextBox, ListPager, NumericUpDown, Reveal, TransitionsPresenter, TreeMapPanel. The other is a WPF Ribbon Control, which is currently available as a CTP.
On the graphics side, support for Pixel Shader 3.0 is being added. Previously WPF supported Pixel Shader 2.0 via the ShaderEffect. Probably more important to developers is LayoutRounding. This will force the layout engine to place elements on whole pixel boundaries. Currently controls can be aligned to sub-pixel boundaries, which can result in blurry UIs.
Speaking of blurry UIs, WPF’s well known text rendering problem has been solved. In order to do this, the old text rendering stack was completely replaced. Along with this comes several text formatting options that allow for some degree of fine-tuning.
Windows 7 has been getting particular attention. WPF 4.0 will be offering support for MultiTouch, Jump Lists, and task-bar integration. Thumbnail Toolbars are particularly interesting. They allow users to interact with an application even though the application is minimized.
On the data binding front, support has been added for binding to dynamic objects that implement the IDynamicMetaObjectProvider. This includes all DLR-based languages such as IronRuby and IronPython.
The Visual State Manager feature from Silverlight has made its way into WPF. WPF already had the far more powerful Triggers, but these are also much harder to use than Silverlight’s Visual State Manager.