winform 怎么实现无边框阴影

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了winform 怎么实现无边框阴影相关的知识,希望对你有一定的参考价值。

参考技术A 通过设置窗体的 BackColor 和 Transparencykey 两个属性实现了窗体的透明,但是将一张带有透明效果的PNG图片赋给 BackgroundImage 属性时,【窗体上的图片区域无法透明!】,按我预想的效果应该是【图片区域就是图片本身的效果,因为窗体完全透明了】,而实际情况感觉像是窗体还有一层东西挡住了透明效果。
当然通过设置窗体的 Opacity 属性可以更改窗体的透明度,但是这样一来窗体内包含的控件也就都跟着透明了。

winform 如何实现边框的阴影效果,就像360那种的,四周都有阴影。

参考技术A 你系统是什么版本?win7,还是xp?
如果是系统版本大于等于winvisita,那么,几行代码即可实现
如果是xp,那么,就比较复杂了。追问

win7的系统,我需要说明下,如果你说的是这样的代码,那就算了:
protected override CreateParams CreateParams

get

CreateParams createParams = base.CreateParams;
createParams.ClassStyle |= 0x20000;
return createParams;


这种代码只能实现右边框和下边框的阴影

追答

360的窗口,也只是左,下,右,三遍是阴影,而非全部。
而且,你贴的这种代码,必须要开启theme的系统服务,才有效果。

参考技术B winform中得用带阴影的背景图吧追问

这个。。。呵呵!!!没有程序员会想到用这种方法的。

追答

是啊,因为没有程序员会想着用winform去实现阴影效果吧

用winform的话,网上也有方法,用的是user32.dll和CreateParams,不过我都试了下,在2003下都没有效果,不知道在win7或vista下怎么样
winform里面没有那个属性,

参考技术C 这个建议你看下 wpf追问

wpf我知道怎么搞,我现在就想知道winform的,因为项目的要求就是winform-net2.0,用API的方法可以实现右边框和下边框的阴影,但是并不能实现4周都有阴影的效果!听别人说过用GID+可以实现,但是我怎么搞也没搞起来,渐变只在窗体内部看得出来,所以不行。

参考技术D

【四边阴影】教你实现Winform窗体的四边阴影效果

http://bbs.cskin.net/forum.php?mod=viewthread&tid=61&fromuid=2

以上是关于winform 怎么实现无边框阴影的主要内容,如果未能解决你的问题,请参考以下文章

WINFORM 无边框窗体 阴影与移动

C#中去掉winform边框如何拖动

C#-WinForm-无边框窗体的移动和阴影-API

winform中按钮的被点击时的边框如何去掉?

如何让winform有边框但没有标题栏?

C# winform鼠标移动到窗口给窗口加边框并获得句柄