在TextBlock中设置超链接样式

svi*_*ick 7 wpf xaml datagrid styles

我的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>
Run Code Online (Sandbox Code Playgroud)

我试过了

<Style TargetType="DataGridCell">
    <Style.Triggers>
        <Trigger Property="IsSelected" Value="True">
            <Setter Property="TextBlock.Foreground" Value="White" />
        </Trigger>
    </Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)

TextElement代替的代码相同TextBlock.两者都适用于其他列,但不适用于具有超链接的列.

HCL*_*HCL 2

使用以下链接声明:

<Run Text="{Binding Title}" 
     Foreground="{Binding 
         RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGridCell},
                                        Path=Foreground}"/> 
Run Code Online (Sandbox Code Playgroud)