WPF在win10/11上启用模糊特效 适配Dark/Light Mode
阅读原文时间:2023年08月22日阅读:1

win11:

win10:

大佬们已经总结了许多在WPF上开启亚克力效果的方法,本文只是做一些填坑和适配工作.

正文开始

先来看看部分版本Windows的模糊效果和我的适配方案:

1).早期Windows10:SetWindowCompositionAttribute 方法参照:在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) - walterlv

2).windows10 1803(实测1903支持性更好): 参照:在 WPF 程序中应用 Windows 10 真•亚克力效果 - walterlv

3).windows11:上述的方法在win11失效 新方法使用DwmSetWindowAttribute 参照:Blogopolis - Apply Mica to a WPF app on Windows 11 (tvc-16.science)

一些特性:

1.对于3).的方法 窗口失焦时模糊效果会渐变为纯色填充..

2.在win11上运行时 需要添加WindowChrome.GlassFrameThickness="-1" 否则无效,在win10上则不能设置(见后文示例代码)

3.对于ToolWindow可以在win11上使用2).的方法(见后文示例代码)

为window设置:

WindowStyle="None" ResizeMode="NoResize" AllowsTransparency="True"

  

cs中:

WindowAccentCompositor wac = new(this,true);
wac.Color = Color.FromArgb(180, 0, 0, 0);
wac.IsEnabled = true;

附示例代码:

TwilightLemon/WindowEffectTest: 测试win10/11的模糊效果 (github.com)

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章