【问题标题】:Textblock selected foreground color in datagrid WPF文本块在数据网格 WPF 中选择了前景色
【发布时间】:2011-09-28 05:29:34
【问题描述】:

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

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

问题是,当切割行时,秒文本块颜色不会更改,并且几乎不可见...

这个问题有什么解决办法吗?

【问题讨论】:

    标签: c# wpf xaml .net-3.5 datagrid


    【解决方案1】:

    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>
    

    我以answer 为基础,根据您的问题对其进行了调整。我可以在代码中打错字,但你应该明白了:)。希望对您有所帮助。

    【讨论】:

    • 要使用默认系统颜色突出显示文本,请使用Value="{x:Static SystemColors.HighlightTextBrush}" 而不是上面的Blue
    猜你喜欢
    • 2013-11-06
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 2011-11-04
    • 2015-10-11
    • 2018-02-02
    • 2011-11-20
    • 1970-01-01
    相关资源
    最近更新 更多