基于C#的皮肤控件 预览版
虽然Delphi,vb,C#等快速开发工具,有一个所见所得的界面编辑工具,在做Winform开发时,不再像使用MFC那样为界面而头疼了。但是要想制作想QQ,MSN,360safe等待皮肤效果的界面,还是需要借助一些第三方的工具,比如DotNetBar等。对于国内用户来说,价格是高的离谱,如果开发者是看看效果或者自己学习一下,还可以厚着脸皮用一下破解,但是如果是商业软件,身为程序员,总该尊重一下人家的劳动成果吧。
基于此,本人结合网页美工的设计概念,参考MSN和QQ等常用的软件(当然没有反向工程,只是揣摩一下,特别是MSN2009的皮肤,本人非常崇尚该软件的界面设计)
目前仅仅是一个预览版,支持Form和SkinButton以及TabCotrol三种控件的美化。附带一套原创的皮肤。
用于皮肤的图片目前只能是PNG格式,可以自己制作。(会网页美工的话比较方便,ps一个界面的效果,割一下就好。暂时不写制作教程了,附上皮肤文件的配置文件定义)
使用方法:
在项目中引用一下myskindll.dll文件,工具箱内会出现自定义控件。如果要让Form支持皮肤,需要继承自皮肤中的类skinform.
下面是测试软件的form1.cs
程序代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using mySkinDll;//引用中添加myskindll.dll,并引入该命名空间
namespace SkinTest
{
public partial class Form1 : skinForm
{
public Form1()
{
//mySkinDll.Common.SkinPath = @"E:/MyProject/FinanceFamily/bin/Debug/skin";//指定皮肤的路径
InitializeComponent();
initSkin();//加载皮肤
labelTitle.Text = Text;//显示窗口的标题
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("ccSkin 1.0Preview 2009.1.1 ");
}
}
}
附皮肤配置文件说明:
程序代码
<?xml version="1.0"?>
<ccSkin xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd=" http://www.w3.org/2001/XMLSchema">
<btnMinPic>btnMin</btnMinPic> <!--最小化按钮图片文件(不带扩展名,下同)-->
<btnMaxPic>btnMax</btnMaxPic> <!--最大化按钮图片文件-->
<btnExitPic>btnClose</btnExitPic><!--关闭按钮图片文件-->
<btnRestPic>btnRest</btnRestPic><!--还原按钮图片文件-->
<bgrPic>background</bgrPic><!--Form的背景图片文件(文件可以不存在)-->
<titlePic>titlePic</titlePic><!--用于模拟标题栏的图片-->
<icon>appico</icon><!--应用程序的图标(需要转换成png文件)-->
<btnSkinChg>btnSkin</btnSkinChg><!--切换皮肤颜色的按钮图片-->
<leftBarPic>leftBar</leftBarPic><!--左边框图片-->
<rightBarPic>rightBar</rightBarPic><!--右边框图片-->
<bottomBarPic>bottomBar</bottomBarPic><!--底部边框图片-->
<sysBtnH>19</sysBtnH><!--关闭,最小化,最大化按钮的高度(认为他们的高度肯定是相等的)-->
<btnMinW>29</btnMinW><!--最小化按钮的宽度-->
<btnMaxW>27</btnMaxW><!--最大化按钮的宽度(还原按钮也同样宽度)-->
<btnExtW>48</btnExtW><!--关闭按钮的宽度-->
<leftW>9</leftW><!--左边框的宽度-->
<rightW>9</rightW><!--右边框的宽度-->
<bottomH>8</bottomH><!--底部边框的高度-->
<titleH>32</titleH><!--顶部标题栏的高度-->
<topLeftPic>left_up</topLeftPic><!--左上角的图片文件(大小固定)-->
<topRightPic>right_up</topRightPic><!--右上角的图片文件(大小固定)-->
<btmLeftPic>left_down</btmLeftPic><!--左下角的图片文件(大小固定)-->
<btmRightPic>right_down</btmRightPic><!--右下角的图片文件(大小固定)-->
<topPicW>9</topPicW><!--顶部两个角上的图片宽度-->
<topPicH>32</topPicH><!--顶部两个角上的图片高度度-->
<bottomPicW>9</bottomPicW><!--底部两个角上的图片宽度-->
<bottomPicH>8</bottomPicH><!--底部两个角上的图片高度-->
</ccSkin>