DataGrid中的RowStyle只能部分工作

时间:2015-08-09 22:09:30

标签: wpf xaml datagrid triggers styles

这很奇怪,所以我确定我在这里遗漏了一些(几乎)明显的东西。我希望控制所选行和单元格的外观,以便我正在使用触发器。触发似乎有效,因为我看到了我对颜色和厚度的设置。

<DataGrid.RowStyle>
  <Style TargetType="DataGridRow">
    <Style.Triggers>
      <Trigger Property="IsSelected" Value="True">
        <Setter Property="Background" Value="Aquamarine"></Setter>
      </Trigger>
    </Style.Triggers>
  </Style>
</DataGrid.RowStyle>

<DataGrid.CellStyle>
  <Style TargetType="DataGridCell">
    <Style.Triggers>
      <Trigger Property="IsSelected" Value="True">
        <Setter Property="BorderThickness" Value="0"></Setter>
      </Trigger>
    </Style.Triggers>
  </Style>
</DataGrid.CellStyle>

然而,问题是行的背景在包含数据的所有列上以默认蓝色着色,而在最后一列右侧空白区域的自定义海蓝宝石中,就像下图所示。 / p>

enter image description here

是什么给出的?我的google-fu没有显示任何需要删除的持久性默认值...

1 个答案:

答案 0 :(得分:3)

默认蓝色是DataGridCell&#39; Template的一部分。

您可以重新尝试DataGridCell并省略此功能,或者您只需在现有DataGridCell样式的IsSelected触发器中添加一个setter,并将Background设置为Transparent

<DataGrid.CellStyle>
  <Style TargetType="DataGridCell">
    <Style.Triggers>
      <Trigger Property="IsSelected" Value="True">
        <Setter Property="BorderThickness" Value="0"/>
        <Setter Property="Background" Value="Transparent"/>
      </Trigger>
    </Style.Triggers>
  </Style>
</DataGrid.CellStyle>