我遇到了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,如果文本太大而无法放入给定单元格(当用户将鼠标悬停在给定单元格上时,这将完全显示在工具提示中)
我现在的问题是,当我选择一个单元格时,无论我尝试做什么,前景都会设置为白色 - 我真正想要发生的是让单元格(甚至更好,整行)背景颜色发生变化到橘子。
对此有任何帮助都很棒
克里斯
答案 0 :(得分:2)
如果您要更改DataGridCell.Background
属性,则需要在ControlTemplate
e.g。使用TemplateBinding
<Border Name="DataGridCellBorder"
Background="{TemplateBinding Background}"/>