Winform不规则窗口如此简单(采用分层技术)

来源:互联网 发布:linux 一键安装lnmp 编辑:程序博客网 时间:2024/06/07 17:14

[精]Winform不规则窗口如此简单(采用分层技术)

实现效果图1:

实现效果图2:


实现思路:

其实想实现不规则窗口有很多种方法,可是每种都不太完美,要么有毛边,要么又只能实现简单的不规则窗口。

所以我利用系统API重画了整个窗口,也就是我们所说的绘图层。

可是由于API重画,会造成一个巨大的问题就是,添加在上面的所有控件的Paint方法都不执行了,这样一来可以点击,却看不见。

我所用的解决方法就是,在上面加多一个窗口,也就是控件层,用来放控件,而控件层的背景就是,绘图层对应的位图。

每当其中一个窗口移动时,另一个窗口也会跟着移动,实现一体移动的效果。


操作与小编留言:

小编写代码也是很辛苦的,源码已经上传,顺便攒点积分,见谅见谅。

操作方法也很简单,添加引用一个小编写好的SkinForm.dll。

然后让想实现效果的窗口继承SkinMain就行了。

随后再看下属性窗口,会增加SkinSize,SkinBack,SkinOpacity,SkinPosition,SkinTrankColor,SkinWhetherTank,SkinMobile。


属性的作用:

SkinSize:设置或获取绘图层窗口大小。

SkinBack:设置或获取绘图层窗口背景。

SkinOpacity:设置或获取绘图层窗口透明度(0-255)。

SkinPosition:设置或获取窗口在控件层位置。

SkinTrankColor:绘图层需要透明的颜色。

SkinWhetherTank:绘图层是否开启位图仿透明  注意(SkinOpacity < 255时,此属性为False可达到背景透明,控件不透明的效果。)。

SkinMobile:窗体是否可以移动。


源码共享:

源码下载

原创粉丝点击