当前位置:编程学习 > C#/ASP.NET >>

自绘窗口阴影

需实现在窗体四周显示一圈阴影,颜色可以自定义,阴影宽度可自定义,阴影部分还有透明效果,
实现的效果如下图:

我自己的思路是在窗体四周绘制PATH,然后用渐变色填充PATH,我是将绘制函数写在了OnPaint函数里的。

但有4个问题,
1.我的渐变色不知道怎么实现半透明效果。
2.Path怎么绘制在窗体背面。
3.怎么清除上次绘制的阴影,如果不清除,屏幕上有时会显示以前绘制的阴影,且因为阴影绘制多遍,导致渐变色重叠,失去渐变效果。
4.阴影跟随窗体移动,把函数卸载窗体移动函数里应该可以实现。 --------------------编程问答-------------------- http://www.codeproject.com/Articles/138661/Metro-UI-Zune-like-Interface-form

http://social.msdn.microsoft.com/Forums/windows/en-US/4c4e83bb-7ba9-4678-88c5-d4e151a42761/possible-to-use-wmncpaint-and-still-get-the-shadow-behind-a-window-on-aero?forum=winforms

--------------------编程问答-------------------- 调用API是可以实现阴影,但不是满足自定义颜色和宽度 --------------------编程问答-------------------- 用层窗体来做 --------------------编程问答-------------------- 除了“用层窗体来做”以外还有好的办法吗 --------------------编程问答-------------------- 没别的好办法 --------------------编程问答-------------------- 用层做的话,有没例子啊,没接触过,个人也是业余的 --------------------编程问答-------------------- 用窗体叠加,阴影窗体仍用层窗体,同步与前面的窗体移动 --------------------编程问答-------------------- 好吧,我自己再琢磨下 --------------------编程问答--------------------
引用 8 楼 dzhl01 的回复:
好吧,我自己再琢磨下

我实现的高仿QQ窗体+阴影,阴影可调节颜色,和宽度,兼容各系统。
高仿QQ2013通讯DEMO-10.30更新
有不懂的可以加我,觉得麻烦的话直接引用案例里面的dll使用就好了,要源码的话,加我QQ:345015918,我可以发个小示例带源码的你研究。 --------------------编程问答-------------------- 附上效果图,效果图设置的阴影宽度是4。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,