更改DataGridTemplateColumn内容样式

时间:2014-11-27 07:55:06

标签: c# css wpf

我想更改DataGridTemplateColumn的内容样式,这里是DataGridTemplateColumn代码:

<DataGridTemplateColumn MaxWidth="50" MinWidth="30" CellStyle="{StaticResource CellStyle}">
<DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
        <Label Style="{StaticResource FontAwesome}" Padding="0" VerticalAlignment="Center" HorizontalAlignment="Center" Cursor="Hand" MouseLeftButtonDown="LblEdit_MouseLeftButtonDown">
            
        </Label>
    </DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

这是CellStype代码:

<Style x:Key="CellStyle" TargetType="DataGridCell">
    <Setter Property="BorderThickness" Value="0 0 1 0"/>
    <Setter Property="BorderBrush" Value="#F6F6F6"/>
    <Setter Property="Foreground" Value="#000"/>
    <Setter Property="FontSize" Value="14" />
    <Style.Triggers>
        <Trigger Property="DataGridCell.IsSelected" Value="True">
            <Setter Property="Background" Value="#FF5750" />
            <Setter Property="Foreground" Value="#FFFFFF" />
        </Trigger>
    </Style.Triggers>
</Style>

enter image description here

但是当选择行时,DataTemplate中的Label不会影响其他单元格是否有效。

有什么办法吗?

三江源!

1 个答案:

答案 0 :(得分:1)

触发器设置DataGridCell的前景色,但不设置Label的前景色。您可以通过向Label添加此Foreground属性来引用<Label Style="{StaticResource FontAwesome}" Foreground="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=Control}, Path=Foreground}" ... /> 中的前景色:

{{1}}