Silverlight 4’s Improved Element Data Binding

Earlier this year, I wrote about Silverlight 3’s new element data binding feature, which enables XAML elements to be bound together declaratively. I also bemoaned the fact that the target of an element-to-element data binding had to be a Framework-element derivative. Good news! Silverlight 4 fixes this by extending element data binding to DependencyObject derivatives.…

Silverlight 4’s New Implicit Styles

Silverlight 4 introduces a boatload of big-ticket features such as printing support, webcam and microphone support, and support for elevated trust in out-of-browser applications. It’s also chock full of minor improvements that fly lower under the radar. One of my favorite features in this category is support for implicit styles. In Silverlight 3, there was…

Silverlight 3’s New Application Extension Services

Another feature of Silverlight 3 that has flown under the radar since the product’s release is application extension services, or application services for short. Application services are client-side services that start when the application starts and end when the application ends. In other words, their lifetime parallels that of the application itself. An application service is…

Silverlight 3’s New {RelativeSource} Markup Extension

One of the more obscure features introduced in Silverlight 3 is the {RelativeSource} markup extension. It’s poorer than its counterpart in WPF because the Silverlight version supports only two modes: Self and TemplatedParent. There are precious few examples out there demonstrating why you’d ever need {RelativeSource} in Silverlight. Here’s one example. Suppose you’re building a custom control…

Implementing CoverFlow in Silverlight 3

Apple’s CoverFlow interface has become popular for presenting collections of items in a highly browseable format, especially on mobile devices where real estate is limited. Thanks to the PlaneProjection class introduced in Silverlight 3, CoverFlow interfaces are now possible in Silverlight, too. I recently set out to build a control that encapsulates all the features needed to build CoverFlow interfaces…

More Fun with Silverlight 3’s WriteableBitmap

I’m currently preparing a couple of new talks for TechEd Europe, which takes place next month in Berlin. One of the talks is entitled “Cool Graphics, Hot Code: Ten Visual Effects to Make You the Envy of Your Peers.” In it, I plan to present techniques for producing eye-popping graphics and visual effects in Silverlight…

Silverlight 3’s New Client Networking Stack

One of the most useful yet little-known new features of Silverlight 3 is one that has nothing to do with UIs: a brand new networking stack called the client HTTP stack, the client networking stack, or simply the client stack. Silverlight 2 introduced rich networking to Silverlight. With classes such as WebClient and HttpWebRequest, you could…

Silverlight 3’s New and Improved Duplex Networking

One of the many cool features added to the run-time in Silverlight 2 was support for WCF duplex services. That support allowed Silverlight clients to connect to duplex services and receive asynchronous callbacks through a callback channel. This made it possible to write Silverlight apps that, for example, update stock prices in near real time as the prices change…

Custom Behaviors in Silverlight 3 and Blend 3

I’ve been spending a lot of time in Expression Blend lately. I wasn’t a huge fan of Blend 2, but Blend 3 is something I can get excited about. And one of the things that excites me is the ability to write custom behaviors. Behaviors are pieces of code that a designer can attach to…

Fun with SaveFileDialog and WriteableBitmap

I’ve been wanting to build a sample that spotlights Silverlight 3’s new SaveFileDialog, but I wanted the sample to actually do something. So I built a Silverlight app that lets you load photos, remove red eyes, and save the edited photos back to disk in PNG format. Silverlight 3’s new WriteableBitmap class provides the pixel-addressable API needed…

Ode to Wicked Code

A lot has happened since I last put pen to paper in my blog. Silverlight 3 has shipped, and I’ve been in the proverbial cone of silence while I worked with non-public builds of the product. I’ll be publishing lots of new and updated Silverlight samples in coming weeks highlighting the best new features of…

Radial Layout in Silverlight

Last week I found myself needing a Silverlight layout control that arranges its items radially so I could use it to template a ListBox. A quick Web search revealed a number of RadialPanel implementations, but none that offered the features I needed. For example, I wanted to be able to rotate the items in the…