删除 wpf 数据网格上的所有边框

Dan*_*das 3 c# wpf datagrid

我对 WPF 有点陌生,我找不到完全摆脱单元格中所有边框、填充和边距的方法。我想要的是桌子上根本没有白色,鱼子之间只有一条简单的水平线。

这是我得到的截图:

在此处输入图片说明

这是我想得到的截图:

在此处输入图片说明

到目前为止,我有这个简化的代码:

<DataGrid IsReadOnly="True" AllowDrop="True" ItemsSource="{Binding Mode=OneWay, Source={StaticResource imageInfoListView}}" 
              AutoGenerateColumns="False" HorizontalScrollBarVisibility="Auto" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" ColumnWidth="*" 
              FontSize="10" GridLinesVisibility="Horizontal" CanUserResizeColumns="False" 
              CanUserResizeRows="False" BorderThickness="0">            
        <DataGrid.CellStyle>
            <Style TargetType="DataGridCell">
                <Setter Property="Margin" Value="0"/>
                <Setter Property="Padding" Value="0"/>
            </Style>
        </DataGrid.CellStyle>
        <DataGrid.ColumnHeaderStyle>
            <Style TargetType="{x:Type DataGridColumnHeader}">
                <Setter Property="ContentTemplate">
                    <Setter.Value>
                        <DataTemplate>
                            <TextBlock TextWrapping="WrapWithOverflow" Text="{Binding}" TextAlignment="Center" FontSize="9"/>
                        </DataTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </DataGrid.ColumnHeaderStyle>            
            <DataGridCheckBoxColumn Header="Guides" Binding="{Binding Guides}">
                <DataGridCheckBoxColumn.CellStyle>
                    <Style TargetType="{x:Type DataGridCell}">
                        <Setter Property="Background" Value="{Binding GuidesBrush}"/>
                    </Style>
                </DataGridCheckBoxColumn.CellStyle>
            </DataGridCheckBoxColumn>
            <DataGridTextColumn Header="Width" Binding="{Binding Width}">
                <DataGridTextColumn.CellStyle>
                    <Style TargetType="DataGridCell">
                        <Setter Property="Background" Value="{Binding WidthBrush}"/>
                    </Style>
                </DataGridTextColumn.CellStyle>
            </DataGridTextColumn>
            <DataGridTextColumn Header="Height" Binding="{Binding Height}">
                <DataGridTextColumn.CellStyle>
                    <Style TargetType="DataGridCell">
                        <Setter Property="Background" Value="{Binding HeightBrush}"/>
                    </Style>
                </DataGridTextColumn.CellStyle>
            </DataGridTextColumn>
            <DataGridTextColumn Header="Resolution" Binding="{Binding Resolution}">
                <DataGridTextColumn.CellStyle>
                    <Style TargetType="DataGridCell">
                        <Setter Property="Background" Value="{Binding ResolutionBrush}"/>
                    </Style>
                </DataGridTextColumn.CellStyle>
            </DataGridTextColumn>
            <DataGridTextColumn Header="Icc Model" Binding="{Binding IccModel}">
                <DataGridTextColumn.CellStyle>
                    <Style TargetType="DataGridCell">
                        <Setter Property="Background" Value="{Binding IccModelBrush}"/>
                    </Style>
                </DataGridTextColumn.CellStyle>
            </DataGridTextColumn>
            <DataGridTextColumn Header="Compression" Binding="{Binding Compression}">
                <DataGridTextColumn.CellStyle>
                    <Style TargetType="DataGridCell">
                        <Setter Property="Background" Value="{Binding CompressionBrush}"/>
                    </Style>
                </DataGridTextColumn.CellStyle>
            </DataGridTextColumn>
            <DataGridTextColumn Header="Errors" Binding="{Binding Errors}" Visibility="Hidden" />
        </DataGrid>
Run Code Online (Sandbox Code Playgroud)

但是我找不到完全删除我不想要的所有内容的方法。有什么线索吗?

ASh*_*ASh 5

你已经有了 GridLinesVisibility="Horizontal"

您还需要的财产是 BorderThickness

但另一个问题是你定义了DataGrid.CellStyle然后无关的DataGridTextColumn.CellStyles

制作默认的 DataGridCell 样式并在 CellStyles 列中使用 BasedOn 属性:

<DataGrid.Resources>
    <Style TargetType="DataGridCell">
        <Setter Property="Margin" Value="0"/>
        <Setter Property="Padding" Value="0"/>
        <Setter Property="BorderThickness" Value="0"/>
    </Style>
</DataGrid.Resources>
<!--...-->
<DataGridTextColumn.CellStyle>
    <Style TargetType="DataGridCell" BasedOn="{StaticResource {x:Type DataGridCell}}">
        <Setter Property="Background" Value="{Binding WidthBrush}"/>
    </Style>
</DataGridTextColumn.CellStyle>
Run Code Online (Sandbox Code Playgroud)