One of the points I stress in my talks about Silverlight and WPF is that there is true separation now between the look and feel of your applications and the functionality of it thanks to XAML.
Think about the Tree view control in Winforms you may have used. In the past all of the events and properties that that control would trigger were bound to how it would look and act in the UI. You had to think in terms of what that control looked like when you were programming its functionality. This is not the case with XAML!
As long as you implement the correct interface (IList or IEnumerable) on your data objects you can have them look and behave any way you want. And you change all of this in the XAML markup language itself. You can even do it in tools like Expression and have it generate the code for you! Once you get used to the way XAML handles things (Triggers are events, etc..) the sky really is the limit. You want your Tree view to suddenly pop up in 3d? Or move sideways instead of vertical? Just apply a different XAML template to your data object and you are all set!
I can't tell you enough how liberating this is as a .NET Developer. Every element on my UI - listboxes, radio buttons, tree views, tabs can be changed simply by updating the XAML. Not only that XAML is the language used across the entire platform now. So the same applies to Silverlight.
We recently ran a contest on the MIX site. The challenge? Take the current functionality of the website but apply a different skin to it. The results were amazing!
Check out the winners here.
One of my Favs is the MIXOS - this totally looks like my desktop - LOL. Notepad open, a browser and IM sessions. Check out the URL too? Notice it is the same Visitmix site, just with a different skin? Great stuff!