当前位置: 代码迷 >> .NET相关 >> [精]Winform不规则窗口如此简单(采用分层技术)解决办法
  详细解决方案

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

热度:371   发布时间:2016-04-24 03:02:49.0
[精]Winform不规则窗口如此简单(采用分层技术)
[精]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:窗体是否可以移动。

帮个忙,下载后有BUG回馈下,最好给出解决方案!

源码共享:
源码下载
------解决方案--------------------
VS2010 C# express

错误 1 命名空间“Microsoft.VisualBasic”中不存在类型或命名空间名称“PowerPacks”。是否缺少程序集引用? C:\Users\Administrator\Desktop\TankCs\TankCs\FrmMain.Designer.cs 178 39 TankCs
  相关解决方案