我的要求是我的WPF DataGrid行应该有边框,但datagrid标题列不应该有任何边框。
如果我将DataGrid放在Border元素中,那么整个网格(包括标题列)将获得边框。
我设置了GridLinesVisibility =“Horizontal”。
有没有办法只为网格行设置边框?
谢谢!
修改
这是我正在使用的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>
答案 0 :(得分:1)
您可以为DataGridColumnHeader
设置样式并将SeparatorBrush
设置为透明。这似乎也删除了列分隔符:
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="SeparatorBrush" Value="Transparent" />
</Style>