删除WPF DataGrid标题列的边框

时间:2013-01-22 06:10:14

标签: wpf wpfdatagrid datagridheaderborder

我的要求是我的WPF DataGrid行应该有边框,但datagrid标题列不应该有任何边框。

如果我将DataGrid放在Border元素中,那么整个网格(包括标题列)将获得边框。

我设置了GridLinesVisibility =“Horizo​​ntal”。

有没有办法只为网格行设置边框?

谢谢!

修改

这是我正在使用的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>

1 个答案:

答案 0 :(得分:1)

您可以为DataGridColumnHeader设置样式并将SeparatorBrush设置为透明。这似乎也删除了列分隔符:

<Style TargetType="{x:Type DataGridColumnHeader}">
    <Setter Property="SeparatorBrush" Value="Transparent" />
</Style>