c# 项目带皮肤一起打包发布解决办法

前提:c#语言   winform应用程序  皮肤为IrisSkin2

目标:在打包发布独立应用 程序时,将皮肤也一起打包发布,实现程序在其它机子安装时,皮肤效果依然存在。

解决方案:

1.大部分IrisSkin2第三方皮肤控件的应用办法都是:

在引用---添加引用-----IrisSkin2.dll,将IrisSkin2.dll文件和skin文件(里面都是.ssk的皮肤文件)都放到bin下面的debug文件里,然后在主窗口添加代码:

Sunisoft.IrisSkin.SkinEngine se = null;(这句代码添加在主窗口程序的类下面,暨不添加在任何方法中)

(以下几句添加在主窗口的初始化方法中):

se = new Sunisoft.IrisSkin.SkinEngine();
se.SkinFile = "skin/Sports/SportsGreen.ssk"; // 指定皮肤文件

se.TitleFont = new System.Drawing.Font("微软雅黑", 10F);// 指定标题
se.SkinAllForm = true; // 这句话是用来设置整个系统下所有窗体都采用这个皮肤

请注意:按照以上方法做了之后,皮肤文件已经可以在本机调试以及安装时实现,但是发布的独立安装程序中确实木有的。

2.按照如下方法,则可以实现在打包发布的独立程序中也可以实现皮肤。

首先:在引用---添加引用-----IrisSkin2.dll,将IrisSkin2.dll文件和skin文件(里面都是.ssk的皮肤文件)都放到bin下面的debug文件里

然后:在工具箱中右键添加选项卡,将IrisSkin2.dll添加进去,则在工具箱中多了一个SkinEngine选项;

下一步:将工具箱中的SkinEngine选项拖拽到你程序的主窗口中去,在你程序的主窗口下方便会出现一个SkinEngine1的图标;

最后一步:右键SkinEngine1图标设置属性,在属性中找到SkinFile,然后选中你需要的.ssk文件。

此时,如果你只需要单一皮肤的话已经OK了!

3.如果你想要你的皮肤多几种,可以选择的话,那么再完成上面步骤后(SkinFile中多添加几个.ssk文件),再添加以下代码:

this.skinEngine1.ApplyAdditionalBuiltInSkins(index);//将多个皮肤添加到SkinEngine的一个集合属性(AddtionalBuiltInSkins)里,(index,代表皮肤集合里的索引,从0开始编号)

你已经实现动态换肤了!

 
 
分类: c#

c# 项目带皮肤一起打包发布解决办法的更多相关文章

  1. 新版本ADT创建Android项目无法自动生成R文件解决办法

    本人使用的是ADT是Version 23.0.2,支持Android 6.0之后的系统环境,最高版本23,在创建Android项目的时候,每次创建项目选择“Compile With”低于6.0版本的时 ...

  2. QT5.4 计算器程序 打包&发布,解决dll的最新解决方案

    QT写界面还是很不错,就是打包会比较麻烦,折腾了一天总算是打包完成了. QT软件的打包发布一个难点是必备dll文件的识别,现在高版本QT自带了一个windeployqt工具,直接会把需要的dll生成一 ...

  3. QT5.4 计算器程序 打包&发布,解决dll的最新解决方案(图文并茂,很清楚)

    QT写界面还是很不错,就是打包会比较麻烦,折腾了一天总算是打包完成了. QT软件的打包发布一个难点是必备dll文件的识别,现在高版本QT自带了一个windeployqt工具,直接会把需要的dll生成一 ...

  4. 打开局域网项目,显示“项目位置不受信任”的解决办法(VS2008)

    弄了几天,网上搜了个遍,愣是解决不了,绝望的时候闭着眼睛胡搞,居然解决了,哈哈.... 开发环境:visual studio 2008 项目位置:局域网其他电脑内 出现问题: 1.弹出“”的对话框,如 ...

  5. Android无法导入下载好的项目(和Eclipse中已经存在的项目命名一样导致冲突)解决办法

    错误提示: 在我们到导入从网络下载的项目时,经常会出现如下问题(选择的项目变灰,并且提示要选择至少一个项目): 错误原因: 出现这样的错误主要是因为你的Eclipse已经存在了和上图中New Proj ...

  6. MyEclipse2015 javaweb项目从svn检出后变成java项目,clean之后不能编译,解决办法是

     javaweb项目从svn检出后变成java项目,解决办法是:1.项目右键–properties–Project Facets,勾选上Dynamic Web Module .Java 两个复选框.点 ...

  7. Eclipse中项目全部报错----项目全部打红叉的解决办法

    今天遇到一个超级郁闷的事情,Eclipse新建的项目全部都打有红叉,我起初以为自 己可能是因为这两天一直在配置NDK开发环境方面的东西,是不是一不小心把那个地方给配置了,然后新建项目时项目都会出现红叉 ...

  8. 导入项目@Override报错原因及解决办法

    从别人那里拷贝来的项目,在人家的环境里没有错误,可是导入到自己本地工程之后报错,删除掉@Override注解后就不报错,导致该原因的是本地工程的JDK版本未更新. 解决办法:调整JDK版本 如此即可解 ...

  9. IDEA 导入 Maven 项目后报错 cannot resolve symbol 解决办法

    这两天整理项目,导入新的 Maven 项目时出现 cannot resolve symbol ,即使 rebuild 也没有用.解决办法如下: 1. File -> Close Project: ...

随机推荐

  1. 使用JFinal框架中Validator

    Validator是JFinal框架中的校验组件,在Validator类中提供了我们经常使用的校验方法,而Validator本身实现了Interceptor接口,所以Validator也相当于一个拦截 ...

  2. android 如何加入第一3正方形lib图书馆kernel于

    注意:只能lib图书馆kernel编译到位.例如下列: alps/kernel/ alps/mediatek/custom/common/kernel/ alps/mediatek/custom/$p ...

  3. STL容器存储的内容动态分配情况下的内存管理

    主要分两种情况:存储的内容是指针:存储的内容是实际对象. 看以下两段代码, typedef pair<VirObjTYPE, std::list<CheckID>*> VirO ...

  4. JVM相关知识(1)

    1.JVM内存管理的机制 内存空间划分为:Sun JDK在实现时遵照JVM规范,将内存空间划分为堆.JVM方法栈.方法区.本地方法栈.PC寄存器. 堆: 堆用于存储对象实例及数组值,可以认为Java中 ...

  5. Linux C 多线程

    原文:Linux C 多线程 linux下C语言多线程编程 #include <pthread.h> #include <stdio.h> #include <sys/t ...

  6. Java之多线程

    一.简述进程与线程的关系   说到多线程就不得不说进程,那么什么是进程:简单的来说就是正在进行中的程序. 在windows中,我们可以直观的看到的正在运行中的程序,即进程,如图:

  7. sql点滴41—mysql常见sql语法

    原文:sql点滴41-mysql常见sql语法 ALTER TABLE:添加,修改,删除表的列,约束等表的定义. 查看列:desc 表名; 修改表名:alter table t_book rename ...

  8. [转]C/C++:构建你自己的插件框架

    本文译自Gigi Sayfan在DDJ上的专栏文章.Gigi Sayfan是北加州的一个程序员,email:gigi@gmail.com. 本文是一系列讨论架构.开发和部署C/C++跨平台插件框架的文 ...

  9. Java泛型和集合之泛型VS模板

    Java的泛型很像C++中的模板,说到Java 泛型和C++中的模板的关系时,有两个重要的方面需要被考虑到:语法和语义.语法看起来是相似的,可是语义却明显是不同的. 在语法上讲,选择尖括号  是因为他 ...

  10. dos下的cd指令

    进入同根目录下的目录: 1.进入同根目录的下一级目录:cd 目录名 2.返回同根目录的上一级目录:cd .. 3.返回目录的根目录:cd \ 进入不同根目录下的目录: 1.进入另外一个根目录(的默认目 ...