【问题标题】:How to change the colour of a selected WPF DataGrid row header如何更改选定 WPF DataGrid 行标题的颜色
【发布时间】:2017-11-13 18:08:37
【问题描述】:

我有一个 WPF DataGrid,它的行标题填充了(少量)文本,这很好用...直到您突出显示该行,当文本变成白色并且几乎不可见时:

为了强制它保持黑色,我设置了以下代码,其中包含IsSelected 触发器和显式DataTemplate,其颜色也已设置。

<DataGrid.RowStyle>
    <Style TargetType="DataGridRow">
        <Style.Triggers>
            <Trigger Property="IsSelected" Value="True">
                <Setter Property="Foreground" Value="Black"/>
            </Trigger>
        </Style.Triggers>
        <Setter Property="HeaderTemplate">
            <Setter.Value>
                <DataTemplate>
                    <TextBlock Foreground="Black" Text="{Binding}" />
                </DataTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</DataGrid.RowStyle>

不幸的是,这些都没有任何效果。在取消选择该行之前,文本会一直保持白色。

如何在选中时强制此文本保持黑色(或任何其他颜色)?

【问题讨论】:

  • 尝试将触发器移动到模板中
  • 对单元格样式也这样做
  • @Steve 成功了!我想我在框外思考(或者,呃,XAML 元素)。如果您将其发布为我可以接受的答案。

标签: c# wpf xaml datagrid


【解决方案1】:

样式触发器是在行本身而不是标题的模板项上定义的。只需将触发器定义移动到标题模板中即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-23
    • 2014-04-06
    • 1970-01-01
    • 1970-01-01
    • 2015-08-22
    • 2013-10-17
    • 2015-12-26
    相关资源
    最近更新 更多