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

如何删除WPF DataGrid中的多余线条与最后一行空白行?

解决WPF DataGrid的两个UI问题:移除最后一列多余线条和空白行

嘿,针对你WPF DataGrid遇到的这两个UI小问题,我给你整理了具体的解决办法,直接结合你的代码调整就行:

1. 移除最后一列右侧的多余竖线

默认情况下,WPF DataGrid会在最后一列右侧预留空白区域并显示竖线,这是控件默认布局逻辑导致的。你可以用下面两种方式解决:

方式一:禁用水平滚动+让列自动填充

给DataGrid添加ScrollViewer.HorizontalScrollBarVisibility="Disabled"属性,同时把每列的宽度设为Width="*",让列均分控件宽度,这样就不会有多余空白区域,竖线自然消失:

<DataGrid Name="ParametersConfigGrid" AutoGenerateColumns="False" Loaded="ParametersConfigGrid_OnLoaded"
          ScrollViewer.HorizontalScrollBarVisibility="Disabled">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Order" Binding="{Binding Order}" Width="*"/>
        <DataGridTextColumn Header="Parameter Name" Binding="{Binding ParameterName}" Width="*"/>
        <DataGridTextColumn Header="Designation" Binding="{Binding Designation}" Width="*"/>
    </DataGrid.Columns>
</DataGrid>

方式二:重写DataGrid模板(更彻底)

如果上面的布局不符合你的需求,你可以重写DataGrid的ControlTemplate,去掉右侧的边框元素。这种方式适合需要深度自定义样式的场景,不过稍复杂一些。

2. 移除最后一行的空白行

这个问题很简单——DataGrid默认允许用户添加新行,所以会显示一条空白行。只需要给DataGrid添加CanUserAddRows="False"属性就能关闭这个功能:

<DataGrid Name="ParametersConfigGrid" AutoGenerateColumns="False" Loaded="ParametersConfigGrid_OnLoaded"
          CanUserAddRows="False"
          ScrollViewer.HorizontalScrollBarVisibility="Disabled">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Order" Binding="{Binding Order}" Width="*"/>
        <DataGridTextColumn Header="Parameter Name" Binding="{Binding ParameterName}" Width="*"/>
        <DataGridTextColumn Header="Designation" Binding="{Binding Designation}" Width="*"/>
    </DataGrid.Columns>
</DataGrid>

把这两个属性结合起来,你的DataGrid就能去掉多余的竖线和空白行啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:49:01