zoukankan      html  css  js  c++  java
  • C# 使用SkinSharp皮肤库

    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_OK 0 操作成功
    SRET_ERROR 1 操作失败
    SRET_ERROR_READ 2 皮肤文件读取失败
    SRET_ERROR_PARAM 3 参数错误
    SRET_ERROR_CREATE 4 创建皮肤失败
    SRET_ERROR_FORMAT 5 皮肤格式错误
    SRET_ERROR_VERSION 6 皮肤版本错误
    SRET_ERROR_PASSWORD 7 皮肤密码错误
    SRET_ERROR_INVALID 8 皮肤引擎错误
  • 相关阅读:
    Python 猜数小程序(练习)
    Mysql 字符串日期互转
    MaxCompute 语句笔记
    数据仓库架构
    Python 比较两个字符串的相似度
    Python print
    Python简单计算器
    HashMap为什么线程不安全(死循环+数据丢失过程分析)
    浅谈ArrayList、Vector和LinkedList
    JAVA对象的浅克隆和深克隆
  • 原文地址:https://www.cnblogs.com/testsec/p/5936236.html
Copyright © 2011-2022 走看看