基于C#的皮肤控件

来源:互联网 发布:kenzo 知乎 编辑:程序博客网 时间:2024/05/16 18:58

基于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>
原创粉丝点击