You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows 11 22H2中如何移除自定义窗口标题栏的强调色?

解决Windows 11 22H2自定义窗口强调色强制显示问题

问题背景

Windows 11 22H2修改了「设置>个性化>颜色>在标题栏和窗口边框中显示强调色」的运行逻辑,会强制所有窗口标题栏显示强调色,导致自定义窗口无法让标题栏继承Mica效果。尝试以下WindowChrome代码无效,且无法修改TitleBar.Height:

<WindowChrome                    
    CaptionHeight="0" 
    GlassFrameThickness="-1"
    UseAeroCaptionButtons="True" />

可行解决方法

  • 通过Windows API强制覆盖标题栏颜色
    用P/Invoke调用DwmSetWindowAttributeAPI,设置DWMWA_CAPTION_COLOR属性为透明或与Mica背景匹配的颜色,直接覆盖系统强制的强调色。示例C#代码:

    [DllImport("dwmapi.dll")]
    private static extern int DwmSetWindowAttribute(IntPtr hwnd, int attr, ref int attrValue, int attrSize);
    
    const int DWMWA_CAPTION_COLOR = 35;
    
    protected override void OnSourceInitialized(EventArgs e)
    {
        base.OnSourceInitialized(e);
        var hwnd = new WindowInteropHelper(this).Handle;
        // 设置标题栏为全透明,使其继承窗口的Mica效果
        int transparentColor = 0; // ARGB格式,0代表全透明
        DwmSetWindowAttribute(hwnd, DWMWA_CAPTION_COLOR, ref transparentColor, sizeof(int));
    }
    
  • 替换为自定义标题栏控件
    完全隐藏系统标题栏,自己实现包含窗口控制按钮的自定义标题栏,彻底掌控样式:

    1. 设置窗口WindowStyle="None",移除系统默认标题栏
    2. 添加自定义标题栏控件,绑定最小化、最大化、关闭的逻辑
    3. 给整个窗口(包括自定义标题栏区域)应用Mica效果

是否为Windows 11 Bug?

这不是Bug,是微软22H2版本的设计变更。微软调整强调色应用范围是为了保证系统视觉一致性,但未给WPF等自定义窗口场景提供足够适配接口,导致开发者需要通过API或自定义控件绕开。

内容的提问来源于stack exchange,提问作者Daniel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 05:15:35