wpf窗体设置阴影后,窗体圆角就会有阴影颜色,圆角就失效了,如何解决啊?求解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wpf窗体设置阴影后,窗体圆角就会有阴影颜色,圆角就失效了,如何解决啊?求解相关的知识,希望对你有一定的参考价值。
参考技术A 拜托提问也要有点精神好不,没有给出代码,很难回答你的问题。我不知道你的窗体圆角是用什么实现的,不过我所知道的方法是把窗体设置为透明,然后在底部铺了一个Rectangle,把Rectangle设置为圆角,设置Rectangle的效果。Rectangle的Fill属性可以填为路径、图片、渐变等,这样效果就出来了。追问
这是我的阴影,但是运行起来就没有阴影了
参考技术B bitmap effect已经被淘汰了,用effect追问嗯,好的,谢谢,我弄出来了
本回答被提问者采纳 参考技术C 重新更改追问我是wpf初学者,您详细说一下可以吗?怎么重新更改,而且在设计里看着有阴影,但是运行起来就没有了。
设置view的圆角和阴影
1.设置view圆角
self.backView.clipsToBounds = YES; self.backView.layer.cornerRadius = 6.f;
2.设置view阴影
self.backView.layer.shadowColor = [UIColor blackColor].CGColor;//shadowColor阴影颜色 self.backView.layer.shadowOffset = CGSizeMake(6,6);//shadowOffset阴影偏移,x向右偏移4,y向下偏移4,默认(0, -3),这个跟shadowRadius配合使用 self.backView.layer.shadowOpacity = 0.5;//阴影透明度,默认0 self.backView.layer.shadowRadius = 4;//阴影半径,默认3
通过上面的方式设置阴影,必须把clipsToBounds关闭.
3.同时设置view的圆角和阴影
如果上面的方法一起用,把masksToBounds开了,阴影无法显示,关了的话其上的View又会遮住圆角。解决的方式只能是再加一层layer。
self.backView.backgroundColor = [UIColor whiteColor]; self.backView.clipsToBounds = YES; self.backView.layer.cornerRadius = 6.f; //阴影效果 CALayer *subLayer=[CALayer layer]; CGRect fixframe=self.backView.layer.frame; fixframe.size.width=[UIScreen mainScreen].bounds.size.width-40; subLayer.frame=fixframe; subLayer.cornerRadius=6.f; subLayer.masksToBounds=NO; subLayer.shadowColor=[UIColor blackColor].CGColor; subLayer.shadowOffset=CGSizeMake(4,4); subLayer.shadowOpacity=0.8f; subLayer.shadowRadius=6.f; [self.backView.layer insertSublayer:subLayer below:self.backView.layer];
以上是关于wpf窗体设置阴影后,窗体圆角就会有阴影颜色,圆角就失效了,如何解决啊?求解的主要内容,如果未能解决你的问题,请参考以下文章