I've made a few updates to the original code for the List picker control that I described here.

When creating this control I made a mistake of relying on LayoutUpdated event to make calls to ScrollIntoView when animation is chaning the control's size. As Dave described it in his blog post "The LayoutUpdated event is a "static event" that is fired every time layout had anything to do anywhere in the tree. " and it's really not a good idea to actually change the layout inside of this event since it could lead to some unpredictable errors and behaviour. So I moved the code out of the LayoutUpdated event into the SizeChanged event instead.

The other change that I had to make to the control is to workaround the inconsistencies that exist in the beta tools in the theme related to the static resources such as PhoneTextBoxBrush and the missing PhoneTextBoxForegroundBrush resource. This is why the changed generic.xaml in the project now includes the following:


<!--This resource doesn't exist in beta. You'll need to uncomment this for release tools. -->
<!--<Setter Property="Foreground" Value="{StaticResource PhoneTextBoxForegroundBrush}"/>-->

 And to workaround the inconsistency of the PhoneTextBoxBrush in the light theme I had to add the following code to the control's constructor code:

// This code is just to support themes in the beta tools
// it's not needed for the release tools
this.backgroundBrush = GetThemedBackground();
this.Background = backgroundBrush;
//*********************************************
// This code should uncommented be for release tools
// this.backgroundBrush = (Brush)(Application.Current.Resources["PhoneTextBoxBrush"]); 

 You can download the updated version of the control from here.