在Windows 10上安装AMD图形驱动程序时,我注意到背景外观模糊,这是我想在应用程序中实现的样式。
我尝试使用UpdateLayeredWindow,但是它不应用模糊效果。我尝试使用DwmExtendFrameIntoClientArea和DwmEnableBlurBehindWindow,但是不确定如何自定义窗口颜色
和图像叠加层。
有一个DwmGetColorizationColor函数,但没有匹配的DwmSetColorizationColor函数。有多种方法可以设置系统范围的颜色,但是我希望颜色仅影响我的应用程序窗口。此外,还从Windows 8和10中删除了Aero Glass™。
如何在Windows 8/10上使用WinForms在我的应用程序中包含这些效果?如果WPF可以渲染这些效果,它如何实现以及如何在WinForms上实现类似的效果?
最佳答案
经过几个月的搜索,我终于找到了the answer。要在Windows 10上达到玻璃效果,必须使用user32.dll
中未公开的SetWindowCompositionAttribute函数。
BOOL WINAPI SetWindowCompositionAttribute(HWND hwnd, WINCOMPATTRDATA* pAttrData)
WINCOMPATTRDATA
结构的布局是:struct WINCOMPATTRDATA {
DWORD attribute; // the attribute to query, see below
PVOID pData; //buffer to store the result
ULONG dataSize; //size of the pData buffer
};
和
attribute
可以具有DWMWINDOWATTRIBUTE枚举中的值。关于c# - 如何在Windows上实现桌面叠加模糊?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45499774/