WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True)

WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome)
WPF 从最底层源代码了解 AllowsTransparency 性能差的原因
WPF 程序无法触摸操作?我们一起来找原因和解决方法!
WPF 程序无法触摸操作?我们一起来找原因和解决方法!
这两种实现的窗口之间还有一些功能上的区别:
方案 | WindowChrome | AllowsTransparency |
---|---|---|
点击穿透 | 在完全透明的部分点击依然点在自己的窗口上 | 在完全透明的部分点击会穿透到下面的其他窗口 |
然而,如果你希望在使用高性能的 WindowChrome 时也依然能点击穿透,那么你需要使用到一点点的小技巧来绕过 WPF 对 WS_EX_LAYERED
窗口样式的锁定。请参见:WPF 制作支持点击穿透的高性能的透明背景异形窗口。
本文会经常更新,请阅读原文: https://blog.walterlv.com/post/wpf-transparent-window-without-allows-transparency.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。