首页 文章

DataGrid选择的单元格背景

提问于
浏览
1

我遇到了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 回答

  • 2

    如果您要更改 DataGridCell.Background 属性,则需要在 ControlTemplate 中的某处使用它

    例如使用TemplateBinding

    <Border Name="DataGridCellBorder"
            Background="{TemplateBinding Background}"/>
    

相关问题