搞采集多年,避免不了搞个简单的UI来曹州,所谓人靠衣装马靠鞍,一套漂亮的皮肤会给你的程序带来高大上的感觉。有时候老板也是看心情的,好的东西总归可以避免点缺点。今天给大家介绍几个曾经研究过的WinForm UI。

1.件苏飞写的仿QQ皮肤控件

  话说本牛研究过的皮肤,第一个就是启蒙的皮肤组件苏飞写的仿QQ皮肤地址如下:http://www.sufeinet.com/forum-73-1.html,看看效果图:

  优点:简单易懂

  缺点:缺点很明显,因为大量的控件都是用UserControl拼凑起来的,所以效率不高。有空的可以尝试尝试,同时也是个学习的工具

2.仿QQ的Paway.Windows.Forms

  作者不详,csdn有下载,地址为:http://download.csdn.net/detail/xinshoubbs/4027994

  优点:比较简单易懂,基于GDI+绘制的窗体,程序带三个小demo,基本满足你对界面的需求,可以进行自定义。

  缺点:也是太简单,bug很多,需要耐心去填坑,不过有也比没有强,至少不用完全自己早轮子。

  接下来要介绍两个不开源的皮肤组件

3.CSkin界面库

  本牛研究时,名叫SkinForm,后来更名为CSkin这个在界面库应该比较出名也是基于GDI+绘制窗体,这个组件拥有完善多样的控件。绝对能满足你多样需求。后来作者又推出了基于DirectUI的DSkin,本牛没试,因为要钱。所以要求更高的朋友可以购买试试。地址为:cskin.net ,现在发展不错,功能很多。

  优点:不用多说,谁用谁知道

  缺点:控件的属性太多,代码有点乱。

4.DMSkin

  前身是MySkin,如果记得没错的话。这个组件完全是业余去研究,看了一下代码,感觉会比CSkin好点,但功能没有这么强大。地址为:

  http://www.dmskin.com/

    优缺点,既然没用,就暂且不予评论。

5.大名鼎鼎的Telerik UI

  Telerik UI开发了一系列UI组件了,Winform皮肤也仅仅是其中一员,网上有泄露的源码版本,本牛小试了一下,感觉效果还是比CSkin、DMSkin的少,如果要自己动手改,想想还是算了。

6.自己造的轮子

  介绍了以上这么多组件,感觉好的已经闭源了,开源的自己又吃不消,好像Telerik这样的大公司开发的,类库比较复杂,不过我很欣赏他的皮肤事件响应,每一个渲染都会产生一个事件,利用好这些事件,应该可以干很多事。基于以上考虑,还是自己再造一次轮子,基于GDI+编写的一个泛皮肤框架,啥为之泛皮肤框架,有兴趣的同学可以看看源码,自然会体会到有什么不同。

  源码地址为:https://github.com/weitaoxiao/ClientEngine

  

  C#.NET开源项目、机器学习、足球赛事资料库

  开源Q群:302961959

  足球研究技术群:142780296

本人需要招聘C#程序员,欢迎志同道合人士加入

http://job.cnblogs.com/offer/51467/

老蜗牛写采集:一个漂亮的客户端-几个C#平台下的Winform 皮肤控件的更多相关文章

  1. 用c#写的一个局域网聊天客户端 类似小飞鸽

    用c#写的一个局域网聊天客户端 类似小飞鸽 摘自: http://www.cnblogs.com/yyl8781697/archive/2012/12/07/csharp-socket-udp.htm ...

  2. Winform DevExpress控件库(一) DevExpress控件库的安装与新建第一个DevExpress项目

    前言:因为这段时间要接触到DevExpress控件库,而我本身甚至对winform的控件都了解甚少,所以处在学习中,写下博客主要是为了方便后期的回顾,当然也可以给一些新人第一次接触时做为学习的参考,以 ...

  3. 帮同事写了几行代码,在 安装/卸载 程序里 注册/卸载 OCX控件

    写了个小控制台程序,这个程序用来注册 / 卸载OCX控件,用在Inno Setup做的安装卸载程序里. #include "stdafx.h" #include <windo ...

  4. 客户端的javascript改变了asp.net webform页面控件的值,后台代码中如何获取修改后的值。

    客户端的javascript改变了asp.net webform页面控件的值,后台代码中如何获取修改后的值.     无论是什么的html控件,只要加上了runat="server" ...

  5. 用js写出一个漂亮的单选框选中效果

    一般的input框比较简单,我们可以用JavaScript配合css背景图片定位让我们模拟写出一个点击选中效果 首先需要有个图片素材,当页面加载的时候是背景图片定位到左图,当我们点击图片的时候,背景图 ...

  6. 可以创建专业的客户端/服务器视频会议应用程序的音频和视频控件LEADTOOLS Video Conferencing SDK

    LEADTOOLS Video Streaming Module控件为您创建一个自定义的视频会议应用程序和工具提供所有需要的功能.软件开发人员可以使用Video Streaming Module SD ...

  7. 扩展GridView实现的一个自定义无刷新分页,排序,支持多种数据源的控件TwfGridView

    最近项目View层越来越趋向于无刷新化,特别是数据展示方面,还要对Linq有很好的支持.在WebFrom模式的开发中,GridView是一个功能很强大,很常用的控件,但是他也不是完美的,没有自带的无刷 ...

  8. setFocus一定要写在setLayout设置的后面,否则不起作用——使用setFocusPolicy为控件设置不同的焦点策略:Tab焦点,Click焦点,Wheel焦点和没有焦点

    QLineEdit* pEditor = new QLineEdit(m_strText);    pEditor->resize(.......);    pEditor->move(. ...

  9. 发现 TSplitter 在嵌套时不好用, 索性写了个替代品(处理MouseDown,MouseMove,MouseUp,然后设定控件的Left值就可以了)

    代替 TSplitter 的 TDirPanel 类: unit DirPanel; interface uses   Classes, Controls, Forms, ExtCtrls; type ...

随机推荐

  1. HTML.ActionLink 和Html.Action和 Url.Action 的区别

    1. html.ActionLink生成一个<a href=".."></a>标记..例如:@Html.ActionLink(“链接文本”.“someact ...

  2. [转载]C#基础-Func,Action

    Func,Action 的介绍及其用法 Func是一种委托,这是在3.5里面新增的,2.0里面我们使用委托是用Delegate,Func位于System.Core命名空间下,使用委托可以提升效率,例如 ...

  3. iptables端口重定向

    需求:     tomcat容器使用普通用户启动不能开启1024以内端口,也就80端口不能使用.业务上通常使用80端口访问. 解决方法:     iptables既是防火墙也是带路由器功能.所以使用它 ...

  4. Spark环境的搭建与运行

    Spark本地安装与配置 下载spark后解压,并cd到解压目录下 运行实例程序测试是否一切正常 ./bin/run-example org.apache.spark.examples.SparkPi ...

  5. Assigning Host USB device to a Guest VM

    Example Assigning Host USB device to a Guest VM This example is based on qemu-kvm (0.15.0) as instal ...

  6. 从assemblyer Instructure deepth understander C principle

    要彻底搞清楚C语言的原理,就必须深入到指令一层去理解.你写一行C代码,编译器会生成什么样的指令,要做到心中有数;

  7. mybatis代码生成器配置文件详解

    mybatis代码生成器配置文件详解 更多详见 http://generator.sturgeon.mopaas.com/index.html http://generator.sturgeon.mo ...

  8. Poj2002 Squares

    题意描述:有一堆平面散点集,任取四个点,求能组成正方形的不同组合方式有多少.相同的四个点,不同顺序构成的正方形视为同一正方形. 思路变迁: 1.最简单的方法,直接暴力搜索,即依次取四个顶点,根据其坐标 ...

  9. A Tour of Go Channels

    Channels are a typed conduit through which you can send and receive values with the channel operator ...

  10. 使用grep要注意的地方

    [maijunjin@localhost testGrep]$ ./ #没有结果 [maijunjin@localhost testGrep]$ . #没有结果 [maijunjin@localhos ...