Один из столбцов в моем DataGrid
содержит a Hyperlink
в a 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
. Обе работы для других столбцов, но не для этого с гиперссылкой.
Используйте следующее объявление для ссылки:
<Run Text="{Binding Title}"
Foreground="{Binding
RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGridCell},
Path=Foreground}"/>