跟我学做c#皮肤美化(一)
                      --概述与导航
每每看着QQ,360等等那些软件漂亮的外衣时,你是不是总是在想我的软件什么时候才能穿上这么漂亮的外衣呢?不过现在当你看到这篇文章的时候不必再发出这样的疑问了,因为接下来我会带领大家一步一步”画出”这些漂亮的外衣!
在写这系列文章之前要感谢博客园的苏飞,我也是看来他的文章后才开始接触皮肤的制作的!我写的这系列文章中有和苏飞相同的地方,也有不同的地方。还有因为我想使这个系列的文章能使刚刚接触皮肤编程的初学者都能跟着我一步一步的实现皮肤的制作,所以我会讲解的很详细很详细。呵呵,不知道这点算不算和苏飞大哥的一点小小的区别呢?!另外我写的这一系列暂时还不会包括换肤功能在里面,而且控件的健壮性,功能的全面性上也可能有不足的地方,希望大家包涵,毕竟我也是刚刚接触皮肤制作这一方面的内容,写的不好或者难免有一些错误的地方还请大家包涵。当然,如果大家有好的建议或者是想和我交流这方面的内容,我也很乐意。我的邮箱qianlf2008@163
接下来所有的控件我都会编写在一个用户控件库QLFUI中,以后的软件中想要应用这些皮肤只要简单的继承或者使用控件就是了。整个控件库可以简单的分成两大类用户控件类和窗体类。用户控件类就是普通的用户控件比如说Button控件,让其不再单调!窗体类就是写一个带有皮肤的窗体,以后其他的窗体只要继承一下就会自动带有了皮肤(多方便)。
说了这么多还是先让大家看看最终做出来的效果图吧!
以后我讲解的内容大体是这个样子的:(因为时间原因可以会有有一些控件会增加或减少,不过我会尽量都讲解全的)
  控件类:
    ---Button控件的制作
    ---CheckBox控件的制作
    ---RadioButton控件的制作
窗体类:
  ---MainForm窗体的制作  (只要继承这个窗体基本上就能披上最简单的外衣了)   
本文归qianlifeng和如鹏网所共有,装载请注明出处,谢谢!
跟我学做c#皮肤美化(二)
                  --Button控件的制作
概述与导航
先来看看我们最终要做的效果图(分别对应普通、悬停、按下时的状态):
下面就开始正式做。首先让我们新建一个控件库项目,命名为和你在一起乔任梁QLFUI。如图:
孔子的影响然后将默认的UserControl1双鱼座男生特点重命名为 Button。接下来,我们就要在这上面来做文章了。
先来稍稍设置一下,让这个用户控件看起来更像一个按钮吧!云南歌会
Button
Size: 78,30
BackgroundImageLayout:Stretch
然后拖一个label控件到这个用户控件上,并设置label1的属性为
AutoSize:false
Dock:fill,   
TextAlign:MiddleCenter,   
BackColor: Transparent,     
Font: 宋体, 9pt
这几个属性。好了,是不是开始像一个按钮了呢?
哦,差点忘了最后还要将整个控件(BUTTON)的背景设置为Trasparent透明。因为如果不设置成透明那么透明的图片下面就会显示出永不妥协电影button的背景(默认灰),不好看。好了,现在样子的已经大概有了,接下来就是编程了。先贴代码,然后我一个一个解释:
    [DefaultEvent("Click")]
    public partial class Button : UserControl
    {
        #region 变量
        //三种不同状态下的图片
        Image _normalImage = null;
        Image _moveImage = null;
        Image _downImage = null;
        #endregion
        #region 属性
        [Category("QLFSkinDll")]
        public Image NormalImage
        {
            get
            {
                return _normalImage;
            }
            set
            {
                _normalImage = value;
            }
        }
        [Category("QLFSkinDll")]
        public Image DownImage
        {
            get { return _downImage; }
            set
            {
                _downImage = value;
            }
        }
        [Category("QLFSkinDll")]
        public Image MoveImage
        {
            get { return _moveImage; }
            set
            {
                _moveImage = value;
            }
        }
        [Category("QLFSkinDll")]
        public鸡肉串 string Caption
        {
            get { return this.label1.Text; }  //控件运行时会自动运行get方法得到值
            set
            {
                this.label1.Text = value;