2

私の要件は、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>
4

1 に答える 1

2

のスタイルをDataGridColumnHeader設定SeparatorBrushし、透明に設定できます。これにより、列の区切り文字も削除されるようです。

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