Change Theme Dynamically in Silverlight 4


Introduction

In this article we will see how we can change theme dynamically in Silverlight 4.

ChangeTheme1.gif

Create Silverlight Application

Fire up Visual Studio 2010, and select Silverlight Project from the templates. Name the solution as ChangeThemeSample.

ChangeTheme2.gif

We need to have System.Windows.Controls.Theming DLL reference, along with the references of the Theme DLLs.

ChangeTheme3.gif

The following figure shows the assemblies to refer for themes.

ChangeTheme4.gif

As you see we have chosen all themes, but it's not necessary. You can take the required themes as per your requirement.

Now let's create an User Control which will have the log in form.

ChangeTheme5.gif

We are not going to see any code behind for this User Control as it's only a demo. So the design would look like the following.

ChangeTheme6.gif

Now, come back to MainPage.xaml, where we would place the user control along with the Combo Box to populate the Themes.

ChangeTheme7.gif

The following is the xaml code for the above design.

ChangeTheme8.gif

Now, let's populate the themes into the Combo Box.

Let's have class called MyThemes, which would have the following properties.

ChangeTheme9.gif

Generate the list of themes in a list and bind it to the ItemsSource of the Combo Box.

ChangeTheme10.gif

Now the important part, we need to handle the SelectionChanged event of the Combo Box to change the whenever the selection changed.

ChangeTheme11.gif

That's it, we can now run the application.

ChangeTheme12.gif

As you see in the above display, all the themes are displayed.

ChangeTheme13.gif

After the selection the theme is changed.

This is only an example, how you can change the theme, you can use it more interactive way.

Hope this article helps.
 


Similar Articles