<Window x:Class="ControlTemplates.GradientButtonTest" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="GradientButtonTest" Height="280" Width="322" > <Window.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="a.xaml"></ResourceDictionary> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Window.Resources> <StackPanel> <Button Margin="10" Padding="5" Click="Clicked" Name="cmdOne">A Simple Button with a Custom Template</Button> <Button Margin="10" Padding="5" IsEnabled="False" Click="Clicked" Name="cmdFour" >A Disabled Button</Button> <CheckBox Margin="10" Checked="chkGreen_Checked" Unchecked="chkGreen_Unchecked">Use Alternate Theme</CheckBox> </StackPanel> </Window> //File:Window.xaml.cs using System; using System.Collections.Generic; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; namespace ControlTemplates { public partial class GradientButtonTest : System.Windows.Window { public GradientButtonTest() { InitializeComponent(); } private void Clicked(object sender, RoutedEventArgs e) { MessageBox.Show("You clicked " + ((Button)sender).Name); } private void chkGreen_Checked(object sender, RoutedEventArgs e) { ResourceDictionary resourceDictionary = new ResourceDictionary(); resourceDictionary.Source = new Uri("a.xaml", UriKind.Relative); this.Resources.MergedDictionaries[0] = resourceDictionary; } private void chkGreen_Unchecked(object sender, RoutedEventArgs e) { ResourceDictionary resourceDictionary = new ResourceDictionary(); resourceDictionary.Source = new Uri("b.xaml", UriKind.Relative); this.Resources.MergedDictionaries[0] = resourceDictionary; } } }