如何删除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
相关产品推荐
相关产品推荐

