我正在使用以下代码使用 DataGrid:
<DataGrid Name="DataGridBids"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch"
HeadersVisibility="Column"
Background="#0d4338"
CanUserAddRows="False"
CanUserDeleteRows="False"
CanUserReorderColumns="False"
ItemsSource="{Binding Bids}"
AutoGenerateColumns="False"
IsReadOnly="True"
IsManipulationEnabled="False"
HorizontalScrollBarVisibility="Disabled"
VerticalScrollBarVisibility="Disabled"
GridLinesVisibility="None"
Margin="0,0,0,0"
BorderThickness="0">
<DataGrid.Resources>
<Style TargetType="DataGridCell">
<Setter Property="TextBlock.TextAlignment" Value="Center"/>
<Setter Property="Background" Value="#0d4338"/>
<Setter Property="Foreground" Value="#11b376"/>
<Setter Property="BorderThickness" Value="0,0,0,0"/>
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Header="Agent" Width="*" Binding="{Binding Agent}"/>
<DataGridTextColumn Header="Quantity" Width="*" Binding="{Binding Quantity}"/>
<DataGridTextColumn Header="Buy" Width="*" Binding="{Binding Price, StringFormat='N2'}"/>
</DataGrid.Columns>
</DataGrid>
当我打开 DataGrid 时,它的工作方式与我预期的完全一样:
但是当我调整窗口大小时,这些意想不到的白色垂直线不断出现(尽管并非总是如此):
由于某种原因,白线仅显示在第二列和第三列之间,并且始终垂直。
我不知道这是否是 WPF 错误,但无论如何我都想修复它。
任何建议都值得赞赏,谢谢!
渲染一定有什么奇怪的地方。由于您的列都打算具有相同的背景,因此您的样式可以像这样以
DataGridRow
而不是 DataGridCell
为目标(注意:我使用透明,因为 DataGrid
已经具有您想要的背景颜色):
<DataGrid.Resources>
<Style TargetType="DataGridRow">
<Setter Property="Background"
Value="Transparent" />
<Setter Property="TextBlock.TextAlignment"
Value="Center" />
<Setter Property="Foreground"
Value="#11b376" />
<Setter Property="BorderThickness"
Value="0,0,0,0" />
</Style>
</DataGrid.Resources>
这消除了我在调整网格大小时看到的任何奇怪的锯齿,但我无法准确重现您所显示的内容。