WPF皮肤类的使用方法,快速创建皮肤管理系统
- 下载http://www.codeproject.com/Articles/22575/WPF-Themes-and-Skins-Engine该开源代码
- 或者下载我提供的文件即可 https://files.cnblogs.com/limaoshengcpp/skin_dll.rar
- 动态链接库的导入
内部库References
PresentationCore
PresentationFramework
PresentationFramework.Classic
PresentationFramework.Luna
外部库
Tomers.WPF.Themes.dll
其他Style做成的动态链接库
- 在要加载皮肤的界面中加入成员变量
using System.Reflection;
using Tomers.WPF.Themes.Skins;
private readonly List<Skin> _skins = new List<Skin>();
3.在主函数处加入如下代码:
InitializeSkins();
DataContext = _skins;
添加函数:
private void InitializeSkins() { _skins.Add(new DirectAssemblySkin("Simple", @"Skins\Tomers.WPF.Themes.SimpleSkin.dll")); _skins.Add(new AppDomainAssemblySkin("Simple", @"Skins\Tomers.WPF.Themes.SimpleSkin.dll")); _skins.Add(new LooseXamlSkin("Classic", new Uri(@"Skins\Classic.xaml", UriKind.Relative))); _skins.Add(new AppDomainAssemblySkin("Classic", new AssemblyName("PresentationFramework.Classic, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"))); _skins.Add(new ReferencedAssemblySkin("Luna Normal", new Uri("PresentationFramework.Luna;V3.0.0.0;31bf3856ad364e35;component/themes/luna.normalcolor.xaml", UriKind.Relative))); _skins.Add(new AppDomainAssemblySkin("Aero", new AssemblyName("PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"))); _skins.Add(new AppDomainAssemblySkin("Luna Metalic", new AssemblyName("PresentationFramework.Luna, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"), "themes/luna.metallic.xaml")); _skins.Add(new AppDomainAssemblySkin("Royale", new AssemblyName("PresentationFramework.Royale, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"))); }
|
InitializeSkins函数中的
_skins.Add(new DirectAssemblySkin("Simple", @"Skins\Tomers.WPF.Themes.SimpleSkin.dll"));
_skins.Add(new AppDomainAssemblySkin("Simple", @"Skins\Tomers.WPF.Themes.SimpleSkin.dll"));
_skins.Add(new LooseXamlSkin("Classic", new Uri(@"Skins\Classic.xaml", UriKind.Relative)));
@后面要求有必要的文件.
4.更改皮肤
Skin skin = _skins[0] as Skin;
skin.Load();
这样就完成了皮肤的一个调用。
5.注意.net版本必须是3.0或者3.5不可以是4.0