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

威廉乔克斯_汀 2012-10-16 03:27:26
[精]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回馈下,最好给出解决方案!

源码共享:
源码下载
...全文
402 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiedingan 2012-10-23
  • 打赏
  • 举报
回复
VS2010 C# express

错误 1 命名空间“Microsoft.VisualBasic”中不存在类型或命名空间名称“PowerPacks”。是否缺少程序集引用? C:\Users\Administrator\Desktop\TankCs\TankCs\FrmMain.Designer.cs 178 39 TankCs
  • 打赏
  • 举报
回复
Microsoft.VisualBasic是Iphone主键上那个圆形按钮的引用。把那个按钮和相关引用删了就没事了,不影响不规则窗口的核心代码!

1,978

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 其他语言讨论
社区管理员
  • 其他语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧