实现方法比较简单,动态的加载资源字典来实现切换皮肤
<Application x:Class="Samples.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="SkinWindows/Skin/ResourceDictionary1.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
切换方法
Application.Current.Resources.MergedDictionaries[0] = new ResourceDictionary()
{
Source = new Uri("SkinWindows/Skin/ResourceDictionary3.xaml",