文本块在数据网格WPF中选择前景色

本文关键字:WPF 选择 前景色 网格 数据网 数据 文本 | 更新日期: 2023-09-27 18:01:22

我已经在WPF中创建了一个数据网格…
我已经定义了几个自定义列..

 <my:DataGridTemplateColumn.CellTemplate>
       <DataTemplate>
           <StackPanel>
                <TextBlock Text="{Binding HeadC}" />
                <TextBlock Text="{Binding HeadCPercent}"  Foreground="#FFF05D1D" />
           </StackPanel>
       </DataTemplate>
 </my:DataGridTemplateColumn.CellTemplate>

问题是,当一行被选中的秒文本块颜色不改变,它几乎是不可见的…

这个问题有解决办法吗?

文本块在数据网格WPF中选择前景色

DataTrigger添加到DataTemplate触发器集合中,该集合将根据所选行的状态更改前景。就像下面的例子:

<DataTemplate>
  <StackPanel>
    <TextBlock Text="{Binding HeadC}" />
    <TextBlock x:Name="tbPercent" Text="{Binding HeadCPercent}" Foreground="#FFF05D1D"/>
  </StackPanel>
  <DataTemplate.Triggers>
    <DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type dg:DataGridRow}}}" Value="True">
        <Setter Property="Foreground" TargetName="tbPercent" Value="Blue" />
    </DataTrigger>
  </DataTemlate.Triggers>
</DataTemplate>

我把这个答案作为基础,并根据你的问题进行了调整。我可以在代码中打错字,但你应该得到的想法:)。