在 WPF 程序中应用 Windows 10 真?亚克力效果
Posted lonelyxmas
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在 WPF 程序中应用 Windows 10 真?亚克力效果相关的知识,希望对你有一定的参考价值。
原文:在 WPF 程序中应用 Windows 10 真?亚克力效果
从 Windows 10 (1803) 开始,Win32 应用也可以有 API 来实现原生的亚克力效果了。不过相比于 UWP 来说,可定制性会差很多。
本文介绍如何在 WPF 程序中应用 Windows 10 真?亚克力效果。(而不是一些流行的项目里面自己绘制的亚克力效果。)
API
需要使用的 API 是微软的文档中并未公开的 SetWindowCompositionAttribute
。
我在另一篇博客中有介绍此 API 各种用法的效果,详见:
当然,使用此 API 也可以做 Windows 10 早期的模糊效果,比如:
如何使用
为了方便地让你的窗口获得亚克力效果,我做了两层不同的 API:
AcrylicBrush
当然,受到 Win32 启用亚克力效果的限制,只能在窗口上设置此属性WindowAccentCompositor
用于更多地控制窗口与系统的叠加组合效果
代码请参见:
注意事项
要使得亚克力效果可以生效,需要:
- 设置一个混合色
GradientColor
- 混合色不能是全透明(如果全透明,窗口的亚克力部分就全透明穿透了),当然也不能全不透明,这样就看不到亚克力效果了。
参考资料
我的博客会首发于 https://blog.walterlv.com/,而 CSDN 会从其中精选发布,但是一旦发布了就很少更新。
如果在博客看到有任何不懂的内容,欢迎交流。我搭建了 dotnet 职业技术学院 欢迎大家加入。
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:https://walterlv.blog.csdn.net/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。
!-->以上是关于在 WPF 程序中应用 Windows 10 真?亚克力效果的主要内容,如果未能解决你的问题,请参考以下文章
WPF 桌面应用程序,Windows 10 通知 Toast 2016(UWP 社区工具包)
Wpf-Application 在 Windows 10 上看起来不同
Windows 8 运行时(WinRT/Windows 应用商店应用程序/Windows 10 通用应用程序)与 Silverlight 和 WPF 相比如何? [关闭]