DataGrid
中的一列包含Hyperlink
中的TextBlock
。选择行时,超链接在蓝色上显示为蓝色,因此我想将其文本颜色更改为白色。我怎么能这样做?
DataGrid
看起来像这样:
<DataGrid>
<DataGrid.Columns>
<DataGridTemplateColumn Header="Title">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock TextWrapping="Wrap">
<Hyperlink NavigateUri="{Binding Url}">
<Run Text="{Binding Title}" />
</Hyperlink>
</TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
我试过
<Style TargetType="DataGridCell">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="TextBlock.Foreground" Value="White" />
</Trigger>
</Style.Triggers>
</Style>
和代码TextElement
代替TextBlock
的代码相同。两者都适用于其他列,但不适用于具有超链接的列。
答案 0 :(得分:2)
对链接使用以下声明:
<Run Text="{Binding Title}"
Foreground="{Binding
RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGridCell},
Path=Foreground}"/>