前段时间我发了个帖子,分享了我自己写的一个C# UI类库,演示了窗体类GMForm实现的效果,大家可以再看看
这个帖子。
现在类库增加了几个控件,同样分享给大家。这几个控件分别是:GMVScrollBar,GMHScrollBar,GMTrackBar,GMProgressBar,GMRollingBar。这些控件与GMForm窗体一样,都可以通过相应的XTheme来配置出不同的形状和外观,而且支持运行时动态切换。下面看看这些控件的效果图。

主界面

GMScrollBar效果,上面这些不同形状,不同外观的滚动条都是通过XTheme来配置的。

GMTrackBar效果

GMProgressBar效果

GMRollingBar效果
这些控件都是继承自System.Windows.Forms.Control类的,不是继承系统的ScrollBar,TrackBar等类。控件上面的按钮,滚动块等元素都是通过GDI+自绘的,所以原理并不复杂,主要是看你对控件自身功能的了解程度,以及对GDI+的熟悉和熟练程度。
这里说明一下GMScrollBar与系统ScrollBar几点差别:
(1) 对系统ScrollBar,如果LargeChange属性值大于1,那么ScrollBar的最大值是无法通过拖动滚动块来达到的。不知道微软为什么这样做,但我觉得这对使用者来说是很麻烦的,所以GMScrollBar没有这一限制,滚动块拖到最上面就能得到最小值,拖到最下面就得到最大值。
(2) 对系统ScrollBar,滚动块占滚动条长度百分比是由LargeChange属性值来影响的,GMScrollBar是单独通过MiddleButtonLengthPercentage来设置的。
(3) 系统ScrollBar同时提供了ValueChanged和Scroll两个事件,但由于这两个事件是一样的,所以GMScrollBar只提供了ValueChanged事件。
现在类库的代码量已经超过了一万行,这些代码中,只有一个地方的代码不是我写的,那就是WinAPI类里面Windows Message常量定义,API32函数声明,以及相应函数参数常量声明,这些代码是我从MSDN网站,或者其它开源项目中复制过来的,因为这部分代码确实没有必要自己写,而且我也写不了。这部分的代码不到500行。除此之外,类库其它地方的所有代码都是我自己写的。也就是类库超过95%的代码都是原创的,是我一行一行写出来的。
类库中窗体及各控件都内置了若干主题,这些主题大部分是模仿现有软件的,只有少数几个是我自己试出来,觉得可以就保留的。使用时,只要实例化这些主题类,并赋给控件的XTheme属性,就能使控件拥有完全不同的外观。
类库不提供开发文档,目前也没有开发文档,只有一个文本格式的介绍各控件公开的属性、事件、方法的文件。如果谁对类库感兴趣,需要开发文档的,可以通过邮件联系我,如果需要的人多,我会完善一份开发文档,对类库进行详细的介绍,并给代码添加尽量多的注释。我现在已经把我辛辛苦苦写的代码毫无保留的奉献出来了,所以开发文档是绝对不再免费提供的。