首页 新闻 会员 周边

WPF窗口怎样做阴影(不用AllowsTransparency="True"的那种)

0
悬赏园豆:100 [已解决问题] 解决于 2021-07-13 09:25

之前做WPF项目,窗口加阴影都是用AllowsTransparency="True"属性做的,弊端也是显而易见,对我数据的刷新,性能产生了不小的影响。也接触过WindowChrome,没找到设置阴影的办法。想知道各位大神WPF窗口做阴影时都用哪种方法。

HelloWorld-Wey的主页 HelloWorld-Wey | 初学一级 | 园豆:67
提问于:2018-10-08 11:07
< >
分享
最佳答案
0

WindowChrome默认应该是有阴影的,你电脑的本身普通窗口显示阴影正常吗?
具体可以参考下园子里这篇文章: https://www.cnblogs.com/dino623/p/CustomWindowStyle.html

收获园豆:100
天方 | 大侠五级 |园豆:5407 | 2018-10-25 00:28

谢谢,我的电脑如果不加AllowsTransparency="True"属性,窗口是没有阴影的。文章我看了,没有给出阴影,只是加了个边框。问题还是没有得到解决,不过还是要谢谢你。

HelloWorld-Wey | 园豆:67 (初学一级) | 2018-10-31 11:25

@HelloWorld-Wey:
WPF的dropshadoweffect绘制阴影的性能是很低的(虽然比之前的BitmapEffect性能高不少,但还是很低),一般只在简单的场景下使用。
WindowChrome是利用windows的渲染机制的,性能要高不少,你的窗口默认没阴影的话,WindowChrome自然也没有阴影。
如果你非要绘制阴影的话,可以考虑用带透明度的图片来替代它,不过这种阴影效果比较假。

天方 | 园豆:5407 (大侠五级) | 2018-11-01 23:30
其他回答(3)
0

这会对性能有影响吗

猝不及防 | 园豆:2781 (老鸟四级) | 2018-10-15 16:30

支持(0) 反对(0) HelloWorld-Wey | 园豆:67 (初学一级) | 2018-10-15 16:58
0

MahApps.Metro中的MetroWindow类完美解决,去参照一下吧。

楚人Leo | 园豆:803 (小虾三级) | 2019-01-23 17:25
0

没找到完美答案,结帖了

HelloWorld-Wey | 园豆:67 (初学一级) | 2019-12-27 10:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册