C# 使用SkinSharp皮肤库

摘要:
SkinSharp是Windows环境下功能强大的通用护肤库。SkinSharp使用独特的软件界面开发技术,使原本复杂而乏味的界面编程变得容易。SkinSharp护肤库目前支持所有流行的开发工具。SkinSharp可以在不修改客户端程序的情况下更改Windows上运行的任何程序的外观,将程序界面与业务逻辑完全分离,这样您就可以轻松完成程序界面的完美升级。

SkinSharp是Windows环境下一款强大的通用换肤库。

SkinSharp作为通用换肤库,只需要在您的程序中添加一行代码,就能让您的界面焕然一新,并拥有多种主题风格和色调的动态切换功能以及Aero透明边框特效。

SkinSharp采用独特的软件界面开发技术,让原本复杂繁琐的界面编程变得轻松自如。SkinSharp换肤库目前支持所有流行的开发工具。SkinSharp可以在不修改客户程序的基础上,对在Windows上运行的任何程序进行随意换肤,完全实现了将程序界面与业务逻辑彻底分离,从而可以让您轻松地完成程序界面的完美升级。

官网:http://www.skinsharp.com/htdocs/index.htm

文件说明:

SkinH_Net.dll SkinSharp换肤引擎, 标准的动态链接库

SkinH_CS.dll SkinSharp引用类库

skinh.she SkinSharp默认皮肤

现以最基本Attach()接口演示如何用一句代码进行换肤。其他接口可以参考官网的文档中心。

Attach()接口默认加载程序当前目录下的skinh.she文件进行换肤。

1. 创建C#.Net Windows应用程序

2. 拷贝软件包Bin目录中的SkinSharp相关文件 (SkinH_Net.dl SkinH_CS.dll skinh.she)到程序输出目录下

3. 添加接口类库SkinH_CS.dll的引用

ps:在解决方案那里找到引用=》右键=》添加引用=》选择SkinH_CS.dll

4. 为达到完美效果,需要将视觉样式选项去掉,在Program.cs 文件的Main函数中将启用视觉样式的代码注释

//Application.EnableVisualStyles();

5. 添加换肤代码

using SkinSharp;

namespace SkinSharp_Demo
{
    public partial class Form1 : Form
    {
        public SkinH_Net skin;
        public Form1()
        {
            skin = new SkinH_Net();
            skin.Attach();
            InitializeComponent();
        }

参数说明

Attach();//加载程序当前目录下的文件名skinh.she皮肤进行换肤

AttachEx("皮肤路径", "");//加载指定路径的皮肤进行换肤

AttachExt("皮肤路径", "");//加载指定路径的皮肤进行换肤并指定相应的色调,饱和度,亮度

AttachRes(Properties.Resources.storm, Convert.ToUInt32(Properties.Resources.storm.Length), "", 0, 0, 0);//加载指定资源进行换肤,其中的storm即为添加的资源文件,不需要添加she后缀

Detach();//卸载换肤 (注意:在换肤或者程序退出时换肤库会自动卸载当前皮肤,无需再调用此接口进行卸载)

DetachEx();//卸载指定句柄的窗体或者控件的皮肤
SRET_OK0操作成功
SRET_ERROR1操作失败
SRET_ERROR_READ2皮肤文件读取失败
SRET_ERROR_PARAM3参数错误
SRET_ERROR_CREATE4创建皮肤失败
SRET_ERROR_FORMAT5皮肤格式错误
SRET_ERROR_VERSION6皮肤版本错误
SRET_ERROR_PASSWORD7皮肤密码错误
SRET_ERROR_INVALID8皮肤引擎错误

免责声明:文章转载自《C# 使用SkinSharp皮肤库》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇if的用法PHP类和对象函数实例详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

uniApp之 顶部选项卡

为了在uniapp插件中创建类似于信息应用程序模板的功能,使用了官方的组件刷。起初,它无法滚动。后来,我看了一下官方网站,说有必要添加“滚动视图”标签,以记录第一次使用uniapp的应用程序。首先,在顶部制作一个选项卡,因为我只有两个项目,所以我将它们直接写入视图标记中{item.label}}然后编写以下内容。单击和滑动可以切换选项卡,所选样式:curre...

TabWidget修改tab颜色,自定义样式

您可以通过tabWidget-˃setStyleSheet方法设置样式,包括选项卡样式。...

oracle触发器调试

如果触发器执行成功,不会出现第4个图,不成功,会出现数据调试信息,具体报错位置会定位到。F7单步执行4.出错时,会出现调试数据,双击调试数据,可以复制出来...

Dto和Entity如何优雅的相互转换

什么是Dto,Entity,用来干什么?这个时候就有一个麻烦事,Entity和Dto的互转。通常的转换方法有两个途径,一个是通过反射的方式,来进行对象属性的复制;另一种是,通过硬编码进行对象属性的赋值;1.在service层中添加实体类转换函数@ServicepublicMyEntityService{publicSomeDtogetEntityById{S...

JavaMail给QQ邮箱发邮件报错

org.springframework.mail.MailAuthenticationException:身份验证失败;nestedexceptionisjavax.mail.AuthenticationFailedException:535错误:http://service.mail.qq.com/cgi-bin/help?subtype=1&&a...

流控制、FlowControl

作用就是防止网络拥堵时导致的“丢包”问题,大致的工作原理就是当链路两端的设备有一端忙不过来了,他会给另外一端的设备发一个暂停发包的命令,通过这种方式来缓解压力,解决丢包问题。看上去流控制应该是个非常好的防止丢包的方法,但是为什么我们还要在无盘上关闭他呢?...