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

使用Mahapps.Metro时GridView最后一个列头显示双竖线如何解决

GridViewColumnHeader

WPF MahApps.Metro下GridView最后一列头双竖线修复方案

你修改列头和gripper样式不生效的核心原因是,没有处理GridView自动生成的末尾占位列头——这个列头的Role属性值为Padding,它自带的分隔边框和最后一个业务列的右边框重叠,就会显示出双竖线。

按以下步骤调整即可:

  • 第一步:在资源字典中重写GridViewColumnHeader样式,直接折叠末尾的占位列头
<Style TargetType="{x:Type GridViewColumnHeader}" 
       BasedOn="{StaticResource MahApps.Styles.GridViewColumnHeader}">
    <Style.Triggers>
        <Trigger Property="Role" Value="Padding">
            <Setter Property="Visibility" Value="Collapsed"/>
            <Setter Property="Width" Value="0"/>
        </Trigger>
    </Style.Triggers>
</Style>

加Width=0是兼容1.x版本的MahApps.Metro,避免折叠后末尾出现空白间隙

  • 第二步:如果完成第一步后仍有双竖线残留,重写gripper样式清除多余边框
<Style x:Key="MahApps.Styles.Thumb.GridViewColumnHeaderGripper"
       TargetType="{x:Type Thumb}"
       BasedOn="{StaticResource MahApps.Styles.Thumb.GridViewColumnHeaderGripper}">
    <Setter Property="BorderThickness" Value="0"/>
    <Setter Property="HorizontalAlignment" Value="Right"/>
</Style>

调整完成后重新运行项目即可,不需要修改后台列定义的逻辑,你之前确认的4列结构不会受影响。

注意:如果项目用的是MahApps.Metro 2.4以上版本,只需要第一步就能解决问题,不需要额外修改gripper样式,新版本默认已经处理了gripper的边框重叠问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 20:30:51