一个简单的问题:如何在WPF中的dataGridCell上设置填充?
(一次或所有单元格,我不在乎)
我尝试通过在DataGrid.CellStyle
属性上添加一个setter以及以相同的方式使用DataGridCell.Padding
属性来使用DataGridColumn.CellStyle
属性,但没有任何效果。
我也尝试过使用DataGridColumn.ElementStyle
属性,但没有多大运气。
我有点卡在那儿,有没有人设法在dataGridCell上应用填充?
注意:我要补充一点,不,我不能使用透明边框来做到这一点,因为我已经将border属性用于其他用途。我也不能使用margin属性(这似乎起作用,足够令人惊讶),因为我使用background属性,并且我不希望单元格之间有任何“空白”空间。
最佳答案
问题在于Padding
不会传输到Border
模板中的DataGridCell
。您可以编辑模板并为Padding
添加TemplateBinding
<DataGrid ...>
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="Padding" Value="20"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridCell}">
<Border Padding="{TemplateBinding Padding}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
<ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</DataGrid.CellStyle>
<!--...-->
</DataGrid>