【发布时间】:2012-02-21 17:18:26
【问题描述】:
我在使用 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(当用户将鼠标悬停在给定的单元格上时,这会在工具提示中完全显示)
我现在的问题是,当我选择一个单元格时,无论我尝试做什么,前景都设置为白色 - 我真正想要发生的是让单元格(或者更好的是,完整的行)背景颜色发生变化到奥兰治。
这方面的任何帮助都会很棒
克里斯
【问题讨论】:
-
这方面的问题太多了,你有没有环顾四周?
标签: wpf xaml wpfdatagrid