WPF皮肤类的使用方法,快速创建皮肤管理系统

  1. 下载http://www.codeproject.com/Articles/22575/WPF-Themes-and-Skins-Engine该开源代码
  2. 或者下载我提供的文件即可 https://files.cnblogs.com/limaoshengcpp/skin_dll.rar
  3. 动态链接库的导入

内部库References

PresentationCore

PresentationFramework

PresentationFramework.Classic

PresentationFramework.Luna

外部库

Tomers.WPF.Themes.dll

其他Style做成的动态链接库

  1. 在要加载皮肤的界面中加入成员变量

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

posted @ 2012-03-20 14:48  复苏森林  阅读(2428)  评论(0编辑  收藏  举报