Hot Off the Presses: WinFX June CTP Is Here...

So I'm glad to announce that the WinFX June CTP has just arrived; you can find the download for Windows XP and Windows Server 2003 here (the next Windows Vista CTP, due imminently, will also include this same release). As you may have heard at TechEd or from Somasegar's blog, we've made the decision to rename WinFX to .NET Framework 3.0. Nothing has changed about the contents of the product or the schedule - it simply reflects the fact that WPF, WCF and WF are a continuation of the .NET platform we've been building for the last five years or so. I highlight it simply because this is the first release that includes the final naming.

From a WPF perspective, there are only a few minor API breaking changes. I'm going through the process of updating some of our demos and samples right now, and so I'll continue to update this entry with any other common issues. Here are the ones that you might hit:

DefaultStyleKey
Currently, to have your style replace the system theme file, you need to set DefaultStyleKey property to null. We've now made DefaultStyleKey protected so that only component authors can specify the default style key.  Instead of setting DefaultStyleKey to null, style authors should now set the new boolean OverridesDefaultStyle property to true.

Old    <Setter Property="DefaultStyleKey" Value="{x:Null}" />
New    <Setter Property="OverridesDefaultStyle" Value="True" />

NavigationWindow
NavigationWindow now no longer supports content directly - instead, you'll need to add a <NavigationWindow.Content> element to contain it.

Old    <NavigationWindow> <Grid ... /> </NavigationWindow>
New    <NavigationWindow> <NavigationWindow.Content> <Grid ... /> </NavigationWindow.Content> </NavigationWindow>

One nice addition to XamlPad that you'll notice when you install the new Windows SDK is a "Show Visual Tree" toolbar button. This is really fun - you can use it to see what the visual tree looks like, based on the logical tree expressed in XAML. This can be really handy when you want to override a default template for something like a button. The property tree explorer also allows you to inspect the properties set on various elements within the visual tree. I love this feature - although I want to spend less time in XamlPad and more in Expression Interactive Designer and Visual Studio, you can't beat a lightweight tool like XamlPad as a sandbox for experimentation. Here's a screenshot to whet your appetite:

I'll continue to update this entry with other breaking changes - feel free to leave a note in the comments if you're struggling to port some code forward because I've not covered it here, and I'll try and find the delta for you.