Customizing the Visual Studio 2010 Start screen

Visual Studio 2010 is completely written in WPF (well, probably except some dialogs …) so this means you can tweak VS in all kinds of ways using the simple power of XAML. One of the simplest things to customize is the start screen. Just for fun I’ve tried this and here is the result (WARNING: may contain advertising :))

image

To try this yourself, first create a folder called StartPages in your Documents/Visual Studio 10 folder.

Then copy the files you find in the Microsoft Visual Studio 10.0\Common7\IDE\StartPages folder.

Open the project with VS10 and you can start to edit away!

The root of the start screen is a grid with three rows, the first row contains the visual studio logo, and the third one contains an RSS feed control. All the action is in the middle row. Warning: this middle row contains a custom VS control, which will be replaced later so prepare to customize again in the next beta!

The grid uses a border control to paint the background. What I’ve done is to change the background to be more U2U orangy:

<Border Grid.RowSpan="3" Grid.ColumnSpan="3" Height="800" VerticalAlignment="Top" 
Style="{DynamicResource {x:Static vs:StartPageResourceKeys.OuterBorderStyleKey}}"> <Border.Background> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="#FFC3874B" Offset="0" /> <GradientStop Color="#FFDD9914" Offset="1" /> </LinearGradientBrush> </Border.Background> </Border>

I’ve also added an extra link button to the U2U website. To do this add another TrayGroupItem inside the TrayGroup:

<vs:TrayGroupItem Content="About U2U"                   ImageSource="C:\Users\Peter\Documents\Visual Studio 10\StartPages\U2U.jpg"                   Command="{x:Static vs:VSCommands.Browse}"                   CommandParameter="{StaticResource Links.AboutU2U}"                   x:Uid="AboutU2U_Item" />

And to represent the uri I’ve added another resource to the root:

<Grid.Resources>   <!-- Welcome tab links -->   <sys:String x:Key="Links.WhatsNew">http://go.microsoft.com/fwlink/?LinkId=123638</sys:String>   <sys:String x:Key="Links.Walkthroughs">http://go.microsoft.com/fwlink/?LinkId=147108</sys:String>   <sys:String x:Key="Links.Feedback">http://go.microsoft.com/fwlink/?LinkId=147445</sys:String>   <sys:String x:Key="Links.Customize">http://go.microsoft.com/fwlink/?LinkId=123641</sys:String>   <sys:String x:Key="Links.AboutU2U">http://www.u2u.be</sys:String>    <!-- Visual Studio tab links –>
</Grid.Resources>

And then I changed the welcome message a little:

<vs:TrayGroupItem Content="Welcome"                   ImageSource="pack://application:,,,/Microsoft.VisualStudio.Shell.UI;component/Images/StartPage/01_whatsnew.png"                   x:Uid="Welcome_Item">   <vs:TrayGroupItem.InnerContent>     <StackPanel>       <TextBlock FontSize="18pt" Foreground="#E8E8E8" Margin="15" x:Uid="Welcome_Text">Welcome to U2U</TextBlock>       <TextBlock Foreground="#E8E8E8" Margin="15" TextWrapping="Wrap" x:Uid="Welcome_Paragraph" >          Welcome to your training!       </TextBlock>       <Button Content="More Information"               HorizontalAlignment="Left"               Margin="15"               Style="{DynamicResource {x:Static vs:StartPageResourceKeys.WelcomeButtonStyleKey}}"               Command="{x:Static vs:VSCommands.Browse}"               CommandParameter="{StaticResource Links.WhatsNew}"               x:Uid="Welcome_Button"         />     </StackPanel>   </vs:TrayGroupItem.InnerContent> </vs:TrayGroupItem>