Change Theme Dynamically in Silverlight 4


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


Create Silverlight Application

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


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


The following figure shows the assemblies to refer for themes.


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.


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.


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


The following is the xaml code for the above design.


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

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


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


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


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


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


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.