移除 WPF DataGrid Header 列的边框
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/14452580/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Remove Border of WPF DataGrid Header column
提问by Sambhaji
My requirement is that my WPF DataGrid rows should have border but the datagrid header column should not have any border.
我的要求是我的 WPF DataGrid 行应该有边框,但 datagrid 标题列不应有任何边框。
If I put DataGrid inside Border element, then entire grid, including header column, gets the border.
如果我将 DataGrid 放在 Border 元素中,那么整个网格(包括标题列)都会获得边框。
I have set GridLinesVisibility="Horizontal".
我已经设置了 GridLinesVisibility="Horizontal"。
Is there any way to have border only for grid rows?
有没有办法只为网格行设置边框?
Thanks!
谢谢!
Edit
编辑
Here is the xaml code I am using..
这是我正在使用的 xaml 代码..
<Style x:Key="DataGridColumnHeaderHiddenStyle" TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="Height" Value="15" />
<Setter Property="BorderBrush" Value="Transparent"/>
</Style>
<StackPanel>
<ScrollViewer MaxHeight="175" VerticalScrollBarVisibility="Auto">
<DataGrid ItemsSource="{Binding SelectedItemsCollectionView}"
CellStyle="{StaticResource CellStyle}" GridLinesVisibility="Horizontal" HorizontalGridLinesBrush="{StaticResource GridBorderBrush}" ClipToBounds="True" AllowDrop="True"
ScrollViewer.CanContentScroll="True"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
x:Name="selectedItemsGrid">
<DataGrid.ItemContainerStyle>
<Style TargetType="{x:Type DataGridRow}">
<Setter Property="AllowDrop" Value="True" />
</Style>
</DataGrid.ItemContainerStyle>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=Name}">
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="TextAlignment" Value="Center" />
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
</DataGrid.Columns>
<DataGrid.Style>
<Style TargetType="DataGrid">
<Setter Property="HeadersVisibility" Value="Column" />
<Setter Property="ColumnHeaderStyle" Value="{StaticResource DataGridColumnHeaderHiddenStyle}" />
</Style>
</DataGrid.Style>
</DataGrid>
</ScrollViewer>
</StackPanel>
回答by Natxo
you can set a style for the DataGridColumnHeaderand set SeparatorBrushto transparent. This seems to remove column separators also:
您可以为 设置样式DataGridColumnHeader并设置SeparatorBrush为透明。这似乎也删除了列分隔符:
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="SeparatorBrush" Value="Transparent" />
</Style>

