2

我的要求是我的 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>
4

1 回答 1

2

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

<Style TargetType="{x:Type DataGridColumnHeader}">
    <Setter Property="SeparatorBrush" Value="Transparent" />
</Style>
于 2013-01-22T09:18:11.167 回答