我有以下的 XAML 代码:
<DataGrid ItemsSource="{Binding}" AutoGenerateColumns="True">
<DataGrid.CellStyle>
<Style TargetType="{x:Type DataGridCell}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="DataGridCell">
<Grid>
<ContentPresenter Height="50">
<ContentPresenter.Resources>
<Style TargetType="TextBlock">
<Setter Property="Padding" Value="4"/>
</Style>
</ContentPresenter.Resources>
</ContentPresenter>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</DataGrid.CellStyle>
</DataGrid>
原来TextBlock有一个默认的内边距为2,0。
为什么样式没有被应用呢?
编辑:我使用了这个解决方案(来自这里),它会从自动生成的TextBlock中获取文本(Content.Text),并在另一个TextBlock中显示它。
<ControlTemplate TargetType="{x:Type DataGridCell}">
<Grid SnapsToDevicePixels="True">
<TextBlock Text="{Binding RelativeSource={RelativeSource TemplatedParent},
Path=Content.Text}" Padding="4"/>
</Grid>
</ControlTemplate>
TextBlock
,并将其Padding
设置为4? - Pieter Witvoet