2016-11-15 859 views
1

我正在使用WPF数据网格来显示一些数据,我想网格线的厚度等于一个像素,但每个单元格显示不需要的边框。如何摆脱它,并将所有行的厚度设置为一个像素(如在WinForms中的DataGridView中)?如何在一个像素宽度(WPF DataGrid)中设置网格线?

XAML: 
<DataGrid HeadersVisibility="Column" SelectionUnit="Cell"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="ID" Binding="{Binding ID}"/>          
     <DataGridTextColumn Header="Description" Binding="{Binding Description}"/> 
    </DataGrid.Columns> 
</DataGrid> 

结果: unwanted borders

+0

它可能是操作系统特定的,只是在win10尝试过样本,并没有这样的影子。 – Shakra

回答

0

这是解决方案! Settig参数RenderOptions.EdgeMode =“Aliased” 非常感谢David Kossoglyad提供的此解决方案。

<DataGrid RenderOptions.EdgeMode="Aliased" UseLayoutRounding="True" ....> 
1

这可能会为你

<DataGrid.CellStyle> 
    <Style TargetType="DataGridCell"> 
     <Setter Property="BorderThickness" Value="1,0,0,1"/> 
     <Setter Property="BorderBrush" Value="Black"/> 
    </Style> 
</DataGrid.CellStyle> 
+0

当我将属性GridLinesVisibility设置为“无”值时,所有网格线都被删除。 我需要网格线,但在一个像素宽度。 – kostey2204

+0

问题没有解决,但加剧了。设定后 边界变得更厚,现在等于2像素 – kostey2204

+0

只需将1,1,1,1更改为1,0,0,1,看看它是否有帮助 –

0

做的伎俩试试这个:

<DataGrid.CellStyle> 
     <Style TargetType="DataGridCell"> 
      <Setter Property="Effect"> 
       <Setter.Value> 
        <DropShadowEffect BlurRadius="1" Opacity="0" ShadowDepth="0"/> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </DataGrid.CellStyle> 

如果这不会帮助尝试设置相同的属性为DataGrid.RowStyle

+0

可惜没帮助 – kostey2204

相关问题