Exemple #1
0
        private void setTaskbarStyle(TaskbarMode mode)
        {
            string tskBarClassName  = "Shell_TrayWnd";
            IntPtr tskBarHwnd       = Win32.FindWindow(tskBarClassName, null /* TODO Change to default(_) if this is not a reference type */);
            var    accent           = new Win32.AccentPolicy();
            var    accentStructSize = Marshal.SizeOf(accent);

            switch (mode)
            {
            default:
            case TaskbarMode.Acrylic:
                accent.AccentState   = Win32.AccentState.ACCENT_ENABLE_ACRYLICBLURBEHIND;
                accent.GradientColor = 10;
                break;

            case TaskbarMode.Blur:
                accent.AccentState = Win32.AccentState.ACCENT_ENABLE_BLURBEHIND;
                break;

            case TaskbarMode.Transparent:
                accent.AccentState = Win32.AccentState.ACCENT_ENABLE_TRANSPARANT;
                break;

            case TaskbarMode.None:
                accent.AccentState = Win32.AccentState.ACCENT_DISABLED;
                break;
            }

            var accentPtr = Marshal.AllocHGlobal(accentStructSize);

            Marshal.StructureToPtr(accent, accentPtr, false);
            var data = new Win32.WindowCompositionAttributeData();

            data.Attribute  = Win32.WindowCompositionAttribute.WCA_ACCENT_POLICY;
            data.SizeOfData = accentStructSize;
            data.Data       = accentPtr;
            Win32.SetWindowCompositionAttribute(tskBarHwnd, ref data);
            Marshal.FreeHGlobal(accentPtr);
        }
Exemple #2
0
 public void SetTaskbarMode(TaskbarMode mode)
 {
     this._config.TaskbarMode = mode;
     this.save();
 }