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

WPF的DataGrid中间出现固定灰色横线不随滚动移动问题求助

解决方案

你遇到的是WPF DataGrid常见的绘制残留问题,一般由高DPI像素对齐、默认控件样式残留边框、虚拟化滚动绘制bug三类原因导致,可按以下顺序尝试修复:

  • 首先给DataGrid添加像素对齐属性,解决半像素绘制残留:
    给你的DataGrid节点添加两个属性:
    UseLayoutRounding="True" SnapsToDevicePixels="True"
    
  • 补充行样式清空默认行边框:
    你目前仅清空了单元格的边框样式,DataGridRow本身还有默认边框配置,在DataGrid节点下添加如下RowStyle即可:
    <DataGrid.RowStyle>
        <Style TargetType="DataGridRow">
            <Setter Property="BorderThickness" Value="0"/>
            <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
        </Style>
    </DataGrid.RowStyle>
    
    同时可以额外添加两个网格线属性做双重保险:
    HorizontalGridLinesBrush="Transparent" VerticalGridLinesBrush="Transparent"
    
  • 排查虚拟化滚动绘制bug:
    如果以上方案无效,可以给DataGrid添加EnableRowVirtualization="False"测试,如果横线消失说明是行虚拟化的绘制问题。如果你的数据量不大可以直接关闭虚拟化使用,如果数据量较大需要保留虚拟化,建议将项目从停止支持的.NET 5升级到.NET 6或更高版本的LTS版本,后续.NET版本修复了大量WPF相关的绘制类bug。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:15:05