闽公网安备 35020302035485号



public enum AccentState
{
ACCENT_DISABLED = 0, // 禁用任何背景或透明效果
ACCENT_ENABLE_GRADIENT = 1, // 启用渐变背景,但不透明
ACCENT_ENABLE_TRANSPARENTGRADIENT = 2, // 启用渐变背景,并带有透明效果
ACCENT_ENABLE_BLURBEHIND = 3, // 启用模糊效果背后的透明效果
ACCENT_ENABLE_ACRYLICBLURBEHIND = 4, // 启用亚克力样式的模糊透明效果,通常用于窗口和任务栏
ACCENT_ENABLE_HOSTBACKDROP = 5, // 启用托管背景的透明效果,应用于当前活动窗口后的背景
ACCENT_INVALID_STATE = 6 // 无效状态,通常用于错误处理或状态未定义
}
2、控制台根据用户输入的数字,传入对应枚举参数进行更改任务栏效果的具体实现:public static void SetTaskbarTransparency(AccentState accentState)
{
var taskbarHwnd = FindWindow("Shell_TrayWnd", null);
if (taskbarHwnd != IntPtr.Zero)
{
var accent = new AccentPolicy();
accent.AccentState = accentState;
var accentStructSize = Marshal.SizeOf(accent);
var accentPtr = Marshal.AllocHGlobal(accentStructSize);
Marshal.StructureToPtr(accent, accentPtr, false);
// 堆代码 duidaima.com
var data = new WindowCompositionAttributeData();
data.Attribute = 19;
data.SizeOfData = accentStructSize;
data.Data = accentPtr;
SetWindowCompositionAttribute(taskbarHwnd, ref data);
Marshal.FreeHGlobal(accentPtr);
}
}
3、具体应用图示:
如果只需要可执行程序的小伙伴,可以在源码库的发行版内直接下载:https://gitee.com/dreamer_j/transp-demo/releases/tag/1
(全文完)