2013-01-22 175 views
2

我的要求是,我的WPF DataGrid行应该有边框,但DataGrid标题列不应该有任何边框。删除WPF 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

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

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

我试过这个。但它不适合我。网格仍然在列标题行周围显示边框。 – Sambhaji

+0

有什么变化吗?标题分隔符是否仍然可见?请张贴一些代码,因为它适用于我。 – Natxo

+0

是的。列标题分隔符现在不可见。但是网格标题行周围的边框仍然可见。我发布了xaml代码。 – Sambhaji