我遇到了WPF DataGrid的问题 .
我有以下代码..
<Style TargetType="{x:Type DataGridCell}">
<Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=Content.Text}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridCell}">
<Border Name="DataGridCellBorder">
<ContentControl Content="{TemplateBinding Content}">
<ContentControl.ContentTemplate>
<DataTemplate>
<TextBlock
Width="auto"
Height="auto"
Background="Transparent"
Text="{Binding Text}"
TextTrimming="CharacterEllipsis"
TextWrapping="WrapWithOverflow" />
</DataTemplate>
</ContentControl.ContentTemplate>
</ContentControl>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="Orange" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
如您所见,我已使用自定义模板替换了默认的DataGridCell . 这是必要的,因为我希望单元格具有TextTrimming,如果文本太大而无法放入给定单元格(当用户将鼠标悬停在给定单元格上时,这将完全显示在工具提示中)
我现在的问题是,当我选择一个单元格时,无论我尝试做什么,前景都会设置为白色 - 我真正想要发生的是将单元格(甚至更好,完整的行)背景颜色更改为橙色 .
对此的任何帮助都会很棒
短剑的一种
1 回答
如果您要更改
DataGridCell.Background
属性,则需要在ControlTemplate
中的某处使用它例如使用TemplateBinding