A better Slider for Windows Phone 7

The Slider control as shipped with the Windows Phone Developer Tools has some problems, both due to how it was templated, and also because it was originally designed for the desktop, where mice are very good at hitting small targets. The visible Thumb was removed, and the invisible Thumb, even when you know where it…

18

Using Popup to create a Dialog class

Presenting a dialog to the user is a common task for many applications. Silverlight 2 does not have a Dialog class, but it is possible to use the Popup class to create a very credible dialog. My Dialog class can’t leave the Silverlight plugin–for that you would have to use Javascript interop to create a new Silverlight…

14

Customizing a ToolTip

(Special thanks to Andre Michaud and Mike Russell who showed me how to do this.) ToolTips are quite useful for for displaying helpful information when the user hovers over a control. The way that ToolTips are usually used is by setting the ToolTipService.ToolTip property to some text. This will display the text in a rather…

13

Control Lifecycle

What happens when you create a Control? When do overrides get called and events get raised? When do styles get applied? In response to this thread on silverlight.net, I’ve whipped this simple table up. There are some subtle differences between instantiating a control in XAML, and instantiating it via code that I’ve called out, but…

12

Layout Transitions – An Animatable WrapPanel

  I’ve been playing around with RenderTransforms and decorators and such to make layout transitions, but for this WrapPanel, my goal was to introduce no additional UI elements, animations or transforms. I also wanted to use some easing equations to do some cool transitions, and separate that logic from the WrapPanel. I wanted the elements the be…

10

Why I Don’t Like Canvas

In Silverlight 1.0, the only container element was Canvas. In Silverlight 2, there are a number of other layout containers, such as Grid, Border and StackPanel, and you can also make your own. Silverlight 2 applications can be completely layout-based and not rely on absolute positioning at all. Of course, you can still use Canvas. But should you?…

8

Navigation with Animated Transition Effects

One of the common things that developers want to do is to navigate between pages of their application. Once they have that, then they want to make the transitions look pretty. The attached project (see below) show how to do use a TransitionControl to do both. The TransitionControl is extensible, so you can even write your…

8

Using an Attached DependencyProperty to Implement Pixel Snapping as an Attached Behavior

In a previous post, I introduced the Snapper element, which is a UserControl subclass that snaps its Content to an integer pixel. Now I’ll show how to implement snapping as an attached behavior using a custom attached DependencyProperty. To use the Snapper element, you put it into your tree, and “wrap” the element that you want…

7

DiscreteSlider – Adding Functionality with a Simple Control Subclass

How do you prevent the Slider from returning “ugly” values, and get it to “snap” to only the values that you want, such as integers, or multiples of a certain step value such as 0.125? One way to do this is to override OnValueChanged, but it helps to understand how that mechanism works. Below is an example of subclassing Slider to add…

6

Panorama Tricks – Using XAML for your Background

If you are doing Windows Phone 7 development, chances are that you are either using or have considered using the Panorama. To make a truly glorious Panorama application, to immerse the user in the experience, or for branding purposes, many applications pay a lot of attention to the background. The Panorama has a Background property…

4