In my DefaultTheme.xaml File I have only set my colors
<SolidColorBrush x:Key="CheckboxForegroundColor" Color="Black"/>
<SolidColorBrush x:Key="CheckboxBackgroundColor" Color="{DynamicResource {x:Static SystemColors.WindowColorKey}}"/>
<SolidColorBrush x:Key="CheckboxBorderbrushColor" Color="{DynamicResource {x:Static SystemColors.WindowColorKey}}"/>
In my ColorTheme.xaml I have done the same but different colors
<SolidColorBrush x:Key="CheckboxForegroundColor" Color="#FFFFFFFF"/>
<SolidColorBrush x:Key="CheckboxBackgroundColor" Color="#FF2d2d30"/>
<SolidColorBrush x:Key="CheckboxBorderbrushColor" Color="#FFCC1517"/>
In my App.xaml
<Setter Property="Foreground" Value="{DynamicResource CheckboxForegroundColor}" />
<Setter Property="Background" Value="{DynamicResource CheckboxBackgroundColor}" />
<Setter Property="BorderBrush" Value="{DynamicResource CheckboxBorderbrushColor}"/>
Changing themes at runtime works fine and my ColorTheme works fine also. But my question is how do I know which systemcolors to use for example Button.Foreground and Button.Background to get the windows Classic look? There are so many Systemcolors I get confused and don't know which one to use for different controls. I have set all my colors to WindowsColorKey in my Default.xaml but seems that it is the wrong way to do it because my application becomes white.