What's New in WPF 3.5?

The first version of WPF was released as part of .NET Framework 3.0 in November 2006. On 11/16/2007, we released the second version of WPF, as part of .NET Framework 3.5 (code-named Orcas). We call this WPF 3.5.

WPF 3.5 has a number of exciting new features and a number of product fixes and improvements, quite a few of them reported and suggested by our customers.

For a full list of the new features in .NET Framework 3.5, check out this article on MSDN and this article on WindowsClient.net. Below is a summary of changes and additions in WPF 3.5. Some of the items below are large features, others are small incremental changes.

 

WPF 3.5 Feature Notes
WPF Add-Ins The "Application Model" team responded to a common request by our customers and delivered a new WPF add-in model (based on the new add-in model in .NET 3.5) that allows developers to create visual add-ins.
Improved Cookie Support Support for session cookies and attaching cookies to resource requests.
Firefox Plugin Now, you can run your XBAPs in Firefox.
Improvements to XAML Intellisense  
RichTextBox hyperlink integration  
RichTextBox.EnableEmbeddedElements  
Expose text selection on DocumentViewer  
Support for Indic text Support for 15 Indic scripts
Dlinq, Xlinq suport  
FreezableCollection<T> additions  
Improved debuggability in Data Support for IDataErrorInfo, support for trace levels, etc.
ClickOnce file associations  
VerboseTextChanged  
Newly exposed Setters in Controls  
Transition effects in page transitions  
IME fixes Multiple fixes to enable proper IME (input method editor)
Serialization of custom TextElements  
UIElement3D UIElement3D extends the 3D feature set in WPF, adding support for input, focus and eventing. Check out this post for more.
Performance Improvements Layered windows performance improvements; Animation smoothing work; Data binding improvements (faster binding from a XML source, improved Blend cold start-up by 11%!); Incremental improvements to cold start, runtime and working set; Incremental improvements to battery life
Expose InteropBitmap.Invalidate()  
BitmapImage.DecodeFailed event  
BitmapImage.BitmapCacheOption New BitmapImage cache behavior
HwndTarget.SetRenderingModel() A new API to allow a developer to force SW rendering for a given window.
PackUri support for SoundPlayerAction