C# - 使用皮肤

运行效果:

项目目录结构:

主窗体代码:

  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Data;
  5 using System.Drawing;
  6 using System.Linq;
  7 using System.Text;
  8 using System.Threading.Tasks;
  9 using System.Windows.Forms;
 10 using Skin.command;
 11
 12 namespace Skin
 13 {
 14     public partial class Print : Form
 15     {
 16         public Print()
 17         {
 18             InitializeComponent();
 19         }
 20
 21         /// <summary>
 22         /// 实例化一个操作类对象
 23         /// </summary>
 24         Command Command = new Command();
 25
 26         #region 加载事件
 27         /// <summary>
 28         /// 加载事件
 29         /// </summary>
 30         /// <param name="sender"></param>
 31         /// <param name="e"></param>
 32         private void Print_Load(object sender, EventArgs e)
 33         {
 34             Command.BindSkin("DiamondBlue.ssk");
 35         }
 36         #endregion
 37
 38         #region 皮肤
 39
 40         /// <summary>
 41         /// deepGreen皮肤
 42         /// </summary>
 43         private void deepGreenToolStripMenuItem_Click(object sender, EventArgs e)
 44         {
 45             Command.BindSkin("DeepGreen.ssk");
 46         }
 47
 48         /// <summary>
 49         /// deepOrange皮肤
 50         /// </summary>
 51         private void deepOrangeToolStripMenuItem_Click(object sender, EventArgs e)
 52         {
 53             Command.BindSkin("DeepOrange.ssk");
 54         }
 55
 56         /// <summary>
 57         /// WaveColor2皮肤
 58         /// </summary>
 59         private void waveColor2sskToolStripMenuItem_Click(object sender, EventArgs e)
 60         {
 61             Command.BindSkin("WaveColor2.ssk");
 62         }
 63
 64         /// <summary>
 65         /// WaveColor1皮肤
 66         /// </summary>
 67         private void waveToolStripMenuItem_Click(object sender, EventArgs e)
 68         {
 69             Command.BindSkin("WaveColor1.ssk");
 70         }
 71
 72         /// <summary>
 73         /// Wave皮肤
 74         /// </summary>
 75         private void waveToolStripMenuItem1_Click(object sender, EventArgs e)
 76         {
 77             Command.BindSkin("Wave.ssk");
 78         }
 79
 80         /// <summary>
 81         /// DiamondBlue皮肤
 82         /// </summary>
 83         private void diamondBlueToolStripMenuItem_Click(object sender, EventArgs e)
 84         {
 85             Command.BindSkin("DiamondBlue.ssk");
 86         }
 87
 88         /// <summary>
 89         /// DiamondGreen皮肤
 90         /// </summary>
 91         private void diamondGreenToolStripMenuItem_Click(object sender, EventArgs e)
 92         {
 93             Command.BindSkin("DiamondGreen.ssk");
 94         }
 95
 96         #endregion
 97
 98         #region 退出事件
 99         /// <summary>
100         /// 退出事件
101         /// </summary>
102         /// <param name="sender"></param>
103         /// <param name="e"></param>
104         private void 退出EToolStripMenuItem_Click(object sender, EventArgs e)
105         {
106             Application.Exit();
107         }
108         #endregion
109     }
110 }

command文件夹下的Command.cs代码:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 using System.IO;
 7 using System.Windows.Forms;
 8 using Skin;
 9
10 namespace Skin.command
11 {
12     public class Command
13     {
14
15         /// <summary>
16         /// 实例化一个Skin对象
17         /// </summary>
18         Sunisoft.IrisSkin.SkinEngine se = new Sunisoft.IrisSkin.SkinEngine();
19
20         #region 操作路径
21         /// <summary>
22         /// 操作路径
23         /// </summary>
24         /// <param name="skinfile"></param>
25         /// <returns></returns>
26         public static string skinPath(string skinfile)
27         {
28             string newSkinPath = string.Empty;
29
30             newSkinPath = skinfile.Replace(@"bin\Debug", "");
31
32             return newSkinPath;
33         }
34         #endregion
35
36         #region 绑定皮肤
37         /// <summary>
38         /// 绑定皮肤
39         /// </summary>
40         /// <param name="skinname"></param>
41         public void BindSkin(string skinname)
42         {
43             //获取执行根目录
44             string rootPath = Path.GetDirectoryName(Application.ExecutablePath).ToString();
45
46             //获取存储皮肤文件夹的根目录
47             string skinFolderPath = Command.skinPath(rootPath);
48
49             //获取皮肤文件的绝对路径
50             string skinPath = skinFolderPath + "skin\\" + skinname;
51
52             //赋值路径信息
53             se.SkinFile = skinPath;
54         }
55         #endregion
56     }
57 }

完成。

时间: 2024-08-25 09:48:04

C# - 使用皮肤的相关文章

EUI库 - 皮肤

皮肤分离机制    皮肤分离机制对制作可复用的外观比较有优势 那对于只使用一次的皮肤呢?如果也拆分出两个文件,显然不太方便.这里我们针对单次使用的皮肤定制了内部类的功能   每个组件都有一个childrenCreated()方法,它会在组件初始化完成后回调,子类通常覆盖这个方法来访问一些延迟实例化的子项. 皮肤部件 在皮肤附加到逻辑组件上时,会自动匹配双方的同名变量和id,这些同名变量就叫做"皮肤部件"(SkinPart)   .当为某个组件定制皮肤时,实际上就分为创建对应的皮肤部件和

C# 使用IrisSkin2.dll皮肤库C# ssk皮肤

其实皮肤就是一个第三方的控件,名字是IrisSkin2.dll只要添加到你的工具箱里就可以和其它控件一样使用了下面我说一下使用的方法,不对的地方大家多指教啊. 一.添加控件IrisSkin2.dll.方法:         1.右键“工具箱”→“添加选项卡”改名为→“我的皮肤”.          2.右键“皮肤”→“选择项”弹出对话框         3.点击“浏览“→找到IrisSkin2.dll→下一步→下一步→确定.        4.在皮肤里会出现.        5.把SkinEng

Nico Game Studio 3.地图纹理编辑 物体皮肤编辑

完成功能: 1.地图纹理编辑功能. 图层编辑,添加/删除纹理,地图编辑.网格绘制. 2.物体编辑器:皮肤编辑器. 这块内容比较多: 动态纹理编辑器: 单个皮肤的编辑器. 编辑帧序列,预览动画. 进度实在慢的可以.. 控件和窗体等关于界面的美化,打算放在后面做. 下面的安排 1:完成地图编辑器的功能. 包括:物体,单位,技能编辑器; 以及在地图上放置物体和单位;多地图编辑的功能. 2:完成交互功能. 包括:地图物理属性构建, 玩家控制的角色移动 , 可交互物体的功能实现. 3:游戏基础逻辑实现.

转载几篇别人写的皮肤类控件的技术文章

原连接:http://blog.sina.com.cn/s/blog_4c3538470100ezhu.html 实现控件的透明背景 很多情况下,我们需要控件 的背景是透明的,就是要求直接看到控件父窗口的背景颜色.背景位图,比如标签控件.单选Radio控件.复选Check控件,通常都要求在父窗口的背景上 进行绘制.然而要求控件的画布透明,这个技术在GDI的文档中没有看到Microsoft作任何说明,当然还是有别的办法. 其一: 如果程序支持桌面主题服务的话,则可调用主题服务的API来实现背景.我

ASP.NET重写Render 加载CSS样式文件和JS文件(切换CSS换皮肤)

网页换皮肤的方式有很多种,最简单的通常就是切换页面CSS,而CSS通常写在外部CSS文件里.那么切换CSS其实就是更换html里的link href路径.我在网上搜索了下. 一般有两种方式: 1.页面放一个Holder控件.然后用编程方式把当前用户的风格css link写入页面. 2.过反射机制,逐个控件设置css样式. 上面两种方式都挺麻烦的,第一种需要在每个页面上放一个holder控件,类似的做法还有把link标签加runat=server的做法,页面多了,都比较麻烦.第二种不用考虑了,性能

欧洲人浅色皮肤源自一万年前一祖先基因突变

----------------------------------------------------- 爱美的妹纸,你的SLC24A5基因是什么情况呀?欧洲人的SLC24A5基因在染色体15的比例上占了约0.0072,非洲等地人的SLC24A5基因则占据了0.175-0.226. -------------------------------------------------------- 目前,美国最新一项研究表明,欧洲人浅色皮肤源自一万年前一位祖先的基因突变. 这种肤色变化源于一位生活

窗体皮肤实现 - 在标题栏上增加快速工具条(四)

前面做的工作就是想在标题区域增加快速工具条.前续的基础工作完成,想要在标题区域增加特殊区域都非常方便.只要在绘制时控制自定义区域需要占用标题区域多少空间,然后直接在所占位置绘制.做这个事情前,稍微把代码规整了下.所以界面皮肤处理放到一个单元中. 主要处理步骤 1.划出一个新区域(整个工具条作为一个区域) 2.处理区域检测(HitTest) 3.如果是新区域,把相应消息传给这个区域处理. 4.响应鼠标点击,执行Action 通过上述步骤就能扩展出所想要的标题区快速工具条的. 标题按钮区域是作为一个

Unity3d之个性化皮肤

1.首先创建皮肤,贴图 2.在代码中定义public GUISkin变量,在Inspector中赋值 3.在OnGUI中调用 GUI.skin = mySkin; GUI.Button(new Rect(10,10,100,100),"",GUI.skin.GetStyle("name"));

C# 、winform 添加皮肤后(IrisSkin4) label设置的颜色 无法显示

转自http://blog.csdn.net/l972948751/article/details/7817675 解决方法一:设置label的Tag属性值与skinEngine的DisableTag属性值相同即可.默认值是9999 label.Tag = 9999; 原理: skinEngine.DisableTag属性表示不使用皮肤的控件的Tag. 如果某个控件不想使用皮肤,只要将该控件的Tag属性设置成skinEngine.DisableTag属性值即可. 解决方法二:自定义控件---My

SOUI界面库 添加 windows系统文件图标皮肤

最近在学习soui界面库.其中有用到SListCtrl这个控件来现在文件信息.控件用法基本上和mfc 的CListCtrl差不多.也支持图标显示.但是图标是要自己加入图标图片的.这个就有点不好弄.于是我就自己实现了 windows系统文件图标 的skin 皮肤.不多说了 ,直接上代码. 1 #ifndef __WINFILE_ICON_SKIN_HPP_ 2 #define __WINFILE_ICON_SKIN_HPP_ 3 4 #include "core/SSkinObjBase.h&qu