我正在编写一个WPF应用程序,我希望我的一些超链接是默认的蓝色,其他的是绿色.没问题 - 我可以设置Foreground:
<TextBlock><Hyperlink Foreground="#0C0">Mark as done</Hyperlink></TextBlock>
Run Code Online (Sandbox Code Playgroud)
麻烦的是,当我这样做时,悬停效果消失了.在普通的超链接中,当我将鼠标移到链接上时,它会变为红色,当我将鼠标移开时,它会变回蓝色.但是在分配了Foreground属性的超链接中,它始终是那种颜色 - 红色悬停被完全抑制.
如何在不丢失默认悬停行为和颜色的情况下更改超链接的颜色?
我的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.两者都适用于其他列,但不适用于具有超链接的列.